题目来源:
leetcode题目,网址:8. 字符串转换整数 (atoi) - 力扣(LeetCode)
解题思路:
顺序读取,在当前数大于 2^31-1 或 小于 -2^31 时退出。
解题代码:
- class Solution {
- public:
- int myAtoi(string s) {
- long res=0;
- int pos=0;
- int flag=1;
- while(pos<s.length() && s[pos]==' '){
- pos++;
- }
- if(s[pos]=='-'){
- flag=-1;
- pos++;
- }else if(s[pos]=='+'){
- pos++;
- }
- while(pos<s.length() && isdigit(s[pos])!=0){
- res=res*10+s[pos]-'0';
- if(flag==1 && res>(((long)1<<31)-1)){
- res=(((long)1<<31)-1);
- break;
- }else if(flag==-1 && res> ((long)1<<31)){
- res=((long)1<<31);
- break;
- }
- pos++;
- }
- return (int)(res*flag);
- }
- };
总结:
官方题解是使用自动机,不是很懂。