关于string转整数
又是leetcode的easy级别题,很基本的题目,却漏考虑很多情况,动手前一定要考虑清楚呀!!!
就当做锻炼写作能力吧,先上题目!
将文本转换成整数,注意一下几点:
1.文本里面第一个不为空白的字符应该为数字或‘+’、‘-’,否则返回0;
2.文本中数字后面的文本不影响结果;
3.转换后的值若超过了int的最值应返回最值。
上代码吧!
class Solution { public: int myAtoi(string str) { int start = 0; for (int i = 0; i!= str.length(); i++) { if (str[i] == ' ') start++; else break; } if(start>=str.length()) return 0; int p = 0,t=0; if (str[start] == '-') { start++; p = 1; } else if (str[start] == '+') start++; for (; start <str.length(); start++) { char m = str[start] - '0'; if (m >= 0 && m <= 9) { if(t>INT_MAX/10) if(p==0) return INT_MAX; else return INT_MIN; t *= 10; if(p==0&&t>INT_MAX-m) return INT_MAX; else if(p!=0&&-t<(INT_MIN+m)) return INT_MIN; t += m; } else break; } return p==0?t:-t; } };