这道题做得很烦,一直没明白题意
乱七八糟的。
要用long来存储最后的结果,不然会越界。
public class Solution {
public int atoi(String str) {long rst;
int n=str.length();
int i,begin,flag;
int sn=1;
rst=0;flag=0;
for(begin=0;begin<n;begin++)
if(str.charAt(begin)!=' ')
break;
for(i=begin;i<n;i++)
{
if(i==begin && (str.charAt(i)=='+'))
continue;
if(i==begin && (str.charAt(i)=='-'))
{sn=-1;continue;}
if(flag==0 && str.charAt(begin)==' ')
continue;
else
{
flag=1;
if(str.charAt(i)>'9' || str.charAt(i)<'0')
break;
rst=rst*10+(str.charAt(i)-'0');
}
}
rst=sn*rst;
if(rst>2147483647)
rst=2147483647;
if(rst<-2147483648)
rst=-2147483648;
return (int)rst;
}
}