没啥困难的,唯一有问题的就是边界问题,这个可以参见整数倒置的解法。不过不同的题做法不一致,这个题更简单一点,贴代码
class Solution { public: int myAtoi(string s) { int i = 0; long result = 0; bool zheng = true; while(s[i] == ‘ ‘) i++; if(s[i] == ‘+‘ || s[i] == ‘-‘ ) { if(s[i] == ‘-‘) zheng = false; i++; } while(isdigit(s[i])) { result = s[i]-‘0‘ + result*10; if(result>pow(2,31)-1) break; i++; } if(!zheng) result = -1*result; if(result>pow(2,31)-1) result = pow(2,31)-1; else if(result<-1*pow(2,31)) result = -1*pow(2,31); return result; } };
原文:https://www.cnblogs.com/zhaohhhh/p/14525343.html