[leetcode]String to Integer (atoi)
class Solution { public: int myAtoi(string str) { long long sum = 0; int temp1 = 1; int max1 = 0x7fffffff; int min1 = 0x80000000; if(str.length() == 0 ) return 0; int k = 0; while(str[k] == ' ') { k++; } if(str[k] == '-') {temp1=-1;k++;} else if(str[k] == '+') {k++;} for(int i = k ; i < str.length(); i++) { if(str[i] >= '0' && str[i] <= '9') { sum = sum*10 + (str[i]-'0'); if(sum > max1 || sum < min1) { if(temp1 == -1) { return min1; } return max1; } } else break; } sum *= temp1; return (int)sum; } };
String to Integer (atoi)
这题是我做的比较麻烦的一道题。要考虑:
1、溢出
2、开头只能+ - 之后如果出现+ - 则错误。
3、空格考虑。
4、以及你定义的sum能否装得下溢出,因为要判断是否超过最大最小值。
总之,考虑的挺全。很锻炼人。面试必备啊简直