Leetcode 8. String to Integer (atoi)
https://leetcode.com/problems/string-to-integer-atoi/
class Solution {
public:
const int _MAX=0x7fffffff,_MIN=0x80000000;
int myAtoi(string str) {
long long int val=0;
int i=0,flag=1;
while(str[i]==' ') ++i;
if(str[i]=='-') flag=-1,++i;
else if(str[i]=='+') ++i;
while(i<str.size() && str[i]>='0' && str[i]<='9'){
val=val*10+str[i]-'0';
if(flag*val>=_MAX) return _MAX;
if(flag*val<=_MIN) return _MIN;
++i;
}
return flag*val;
}
};
python版本
class Solution:
def myAtoi(self, str: str) -> int:
str=str.strip()
if len(str)==0:
return 0
sign=1
if str[0]=='-' or str[0]=='+':
sign=-1 if str[0]=='-' else 1
str=str[1:]
ans=0
for i in str:
if i>='0' and i<='9':
ans=ans*10+int(i)
else:
break
INT_MAX,INT_MIN=2**31-1,-2**31
ans*=sign
if ans>INT_MAX:
ans=INT_MAX
if ans<INT_MIN:
ans=INT_MIN
return ans