(AC)代码:
对于Int越界需要判断
class Solution {
public int myAtoi(String strs) {
if(strs==null||strs.length()==0)
return 0;
String str=strs.trim();
boolean flag=false;
int start=0;
int sign=0;
for(int i=0;i<str.length();i++){
char c=str.charAt(i);
if(c=='-'&&sign==0){
flag=true;
sign++;
continue;
}else if(c=='+'&&sign==0){
sign++;
continue;
}
else if(c>='0'&&c<='9'){
start=i;
break;
}else
return 0;
}
int ans=0;
long ansL=0;
while(start<str.length()
&&str.charAt(start)>='0'
&&str.charAt(start)<='9'){
ans=ans*10+str.charAt(start)-'0';
ansL=ansL*10+str.charAt(start)-'0';
if(flag&&ansL!=ans)
return Integer.MIN_VALUE;
else if(ansL!=ans)
return Integer.MAX_VALUE;
else{
start++;
continue;
}
}
if(flag)
return -ans;
return ans;
}
}