题目链接:https://leetcode.cn/problems/string-to-integer-atoi/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
class Solution { public: int myAtoi(string s) { if (s == "") { return 0; } bool start = false; bool negative = false; long res = 0; for (int i = 0; i < s.length(); i++) { if (s[i] == ' ') { if (!start) { continue; } else { break; } } if (s[i] == '-' || s[i] == '+') { if (!start) { if (s[i] == '-') { negative = true; } start = true; continue; } else { break; } } if (s[i] >= '0' && s[i] <= '9') { if (!start) { start = true; } res = res * 10 + (s[i] - '0'); if (res >= 1l<<31) { res = (1l<<31); break; } continue; } else { break; } } if (negative) { res = -res; } if (res <= -(1l<<31) - 1) { res = -(1l<<31) - 1; } if (res >= ((1l<<31) - 1)) { res = ((1l<<31) - 1); } return (int)res; } }; |