首页 > 其他 > 详细

Leetcode_StringToInteger

时间:2016-02-01 13:46:15      阅读:130      评论:0      收藏:0      [点我收藏+]

public class Solution {
    public int myAtoi(String str) {
        if(str.length()==0) return 0;
        int sign=1;int m=0;//直接定义i=0,n=s.length();使用while循环,这样可以让i在代码任意位置都可以访问。
        for(int i=0;i<str.length();i++){
            if(!Character.isWhitespace(str.charAt(i)))
               { m=i;
                break;}
        }
        if(m<str.length()&&str.charAt(m)==‘-‘) {sign=-1;m++;}
        else if(m<str.length()&&str.charAt(m)==‘+‘) {m++;}
        int sum=0;
        while(m<str.length()&&Character.isDigit(str.charAt(m))){
            if(sum>Integer.MAX_VALUE/10)//每次做运算前先判断是否可能会overflow。
                return sign==1?Integer.MAX_VALUE:Integer.MIN_VALUE;
            if(sum==Integer.MAX_VALUE/10&&Character.getNumericValue(str.charAt(m))>7){
                return sign==1?Integer.MAX_VALUE:Integer.MIN_VALUE;
            }
            sum=sum*10+Character.getNumericValue(str.charAt(m));
            m++;
        }
        return sign*sum;
    }
}

//后续类似题:Valid Number。保证字符串中每一个字符都被测试到,定义isNumber变量,随着不断读字符串,动态更改isNumber的值。之后写。状态转换机的使用。

 

Leetcode_StringToInteger

原文:http://www.cnblogs.com/litian0605/p/5174684.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!