字符串转换整数(atoi)(8)
8. 字符串转换整数 (atoi) - 力扣(LeetCode)
解法:
class Solution {
public:int myAtoi(string s) {int64_t res = 0;int idx = 0;int flag = 1;while (idx < s.size() && s[idx] == ' ') {++idx;}if (idx == s.size() || (s[idx] < '0' && s[idx] > '9' && s[idx] != '+' && s[idx] != '-')) {return 0;}if (s[idx] == '-'){flag = -1;++idx; }else if (s[idx] == '+') {++idx;}for (; idx < s.size(); ++idx) {if (s[idx] < '0' || s[idx] > '9') {break;}res = res * 10 + (s[idx] - '0');if (flag == 1 && res >= numeric_limits<int>::max()) {res = numeric_limits<int>::max();break;}if (flag == -1 && res * (-1) <= numeric_limits<int>::min()) {res = numeric_limits<int>::min();break;}}if (flag == -1) {res *= -1;}return static_cast<int> (res);}
};
总结:
计算时间复杂度O(N),N是字符串的长度;空间复杂度O(1)。