- 题目:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
- 思路:
- 出现数字之后,就不能出现正负数了
- 启发或者坑:
- 如果数字超过int范围要处理
- 代码:
class Solution { public: int StrToInt(string str) { //先判断str中+和-的index,如果有,一定必须是index0 long long number = 0; bool positiveFlag = true; int startIndex = str.length(); for (int i = 0 ;i < str.length(); i++) { if (str[i] == '+') { //会不会出现++---8,这个数字实际上就是-8 if (i > startIndex) return 0; } else if (str[i] == '-') { //会不会出现++---8,这个数字实际上就是-8 if (i > startIndex) return 0; positiveFlag = !positiveFlag; } else if (str[i] >= '0' && str[i] <= '9') { if (startIndex == str.length()) startIndex = i; number = number*10 + (str[i]-'0'); } else { return 0; } } if (number > 2147483648) return 0; if (!positiveFlag) number = -number; //神奇的题目,超过int范围也不行 if (number > 2147483647 || number < -2147483648) return 0; else return number; } };
剑指offer 59. 把字符串转换成整数
猜你喜欢
转载自blog.csdn.net/Alexia23/article/details/104094731
今日推荐
周排行