题目:
分析:
根据实际的测试集来看,题目的意思应该是将字符串中所有的整数取出来后,再将字符串表示成整数。
- 将字符串中的空格去除掉
- 看字符串第一位是否为正负号
- 计算每一位的结果,只计算ASCII码在0-9之间的位置
- 判断最后的结果是否大于int能表示的最大值或者小于能表示的最小值
public class Solution {
/**
* @param str: A string
* @return: An integer
*/
public int atoi(String str) {
// write your code here
if(str==null || str.length()<1)
return 0;
str=str.trim();
char flag='+';
int i=0;
//判断是正数还是负数
if(str.charAt(i)=='-'){
flag='-';
i++;
}else if(str.charAt(i)=='+'){
i++;
}
double result=0;
//计算结果
while(i<str.length() && str.charAt(i)>='0' && str.charAt(i)<='9'){
result=result*10+(str.charAt(i)-'0');
i++;
}
if(flag=='-')
result=-1*result;
if(result>Integer.MAX_VALUE){
result=Integer.MAX_VALUE;
}
if(result<Integer.MIN_VALUE){
result=Integer.MIN_VALUE;
}
return (int)result;
}
}