解題心得
很多 edge case 需要考慮的一題。
程式碼
class Solution { public: int myAtoi(string s) { long double ans = 0; int i=0; bool isPositive = true; while(s[i] == ' ') i++; // ignore the leading whitespace if(s[i] == '-') { isPositive = false; i++; } else if(s[i] == '+') { isPositive = true; i++; } for(; i<s.size(); i++) { if(s[i] > '9' || s[i] < '0') break; ans = ans * 10 + s[i] - '0'; } if(!isPositive) ans *= -1; if(ans > INT_MAX) return INT_MAX; else if(ans < INT_MIN) return INT_MIN; return ans; } };
沒有留言:
張貼留言