Implement atoi to convert a string to an integer.
具体的网上已经有很多解法
这里主要就是注意一些地方(最重要的就是返回值一开始最好赋值成为long long 因为有可能会越界)
然后就是一些特殊情况的分析了
class Solution { public: int atoi(string str) { if(str.length() == 0) { return 0; } long long retVal = 0; int length = str.length(); int i = 0; char signFlag = 1; while(str[i] == ' ') { i++; } if(str[i] == '-') { i++; signFlag = -1; } else if(str[i] == '+') { i++; } for(;i < length; i++) { int n = str[i]-'0'; if((n < 0) || (n > 9)) { return retVal*signFlag; //<出现特殊符号 } retVal = retVal*10+n; if(retVal*signFlag > INT_MAX) { return INT_MAX; } else if(retVal*signFlag < INT_MIN) { return INT_MIN; } } return retVal*signFlag; } };
时间: 2024-10-23 17:35:00