《剑指offer》把字符串转换成整数

【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】

题目链接:?rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。思路这一题的坑比较多,主要考虑以下几点1.字符串的前缀空格需要省略2.数字前面出现多个正负号,则判错,返回0,如“++123”,“–123”,“+-123”,“-+123”3.连续的数字被其他符号隔开,则返回0,如“ 123a321”," 123 123",都是返回04.如果超出了int范围(-2147483648–2147483647),返回临界最大值,也就是说如果是负数返回-2147483648,,整数则返回2147483647

class Solution{public:int StrToInt(string str){int len = str.length();int i,j,flag1 = 0,flag2 = 0,num = 1,fu = 0;long long ans = 0;for(i = 0; i<len; i++)if(str[i]!=' ')break;for(; i<len; i++){if(str[i]=='+') flag1++;else if(str[i]=='-') flag2++;else break;}if(flag1+flag2>1) return 0;for(; i<len; i++){if(str[i]>='0' && str[i]<='9'){ans = ans*10+str[i]-'0';if((!flag2)&&ans>=2147483647)return 2147483647;if(flag2&&ans>=2147483648)return -2147483648;}else return 0;}return flag2?-ans:ans;}};

版权声明:本文为博主原创文章,如果转载,请注明出处

旅行,重复一个承诺和梦想,听他第二十八次提起童年往事,

《剑指offer》把字符串转换成整数

相关文章:

你感兴趣的文章:

标签云: