题目:
分析:
根据实际的测试集来看,题目的意思应该是将字符串中所有的整数取出来后,再将字符串表示成整数。
- 将字符串中的空格去除掉
- 看字符串第一位是否为正负号
- 计算每一位的结果,只计算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; } }