题目:Implement atoi to convert a string to an integer.
思路:需要注意一些特殊的输入
class Solution { public: int atoi(const char *str) { int len = strlen(str); int i,k; int64_t j = 1; int result = 0; bool positive = true; int max_or_min = 0; for(k=0; k<len; k++) { if (str[k] != ' ') { if(str[k] == '-') { positive = false; k++; } else if (str[k] == '+') k++; break; } } for(i=len-1; i>=k; i--) { if ((str[i]-'0')>=0 && (str[i]-'0')<=9) { if (positive) { if (uint64_t(result+(str[i]-'0')*j) >= INT_MAX) { max_or_min = INT_MAX; j = 1; continue; } result += (str[i]-'0')*j; } else { if (result + (-1)*(str[i] - '0')*j <= INT_MIN) { max_or_min = INT_MIN; j = 1; continue; } result -= int((str[i]-'0')*j); } j *= 10; } else { max_or_min = 0; result = 0; j = 1; } } if (max_or_min != 0) return max_or_min; return result; } };