又是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++;elsebreak;}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;elsereturn 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;}elsebreak;}return p==0?t:-t;}
};
?