码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode8 String to Integer(atoi)

时间:2018-11-17 17:52:11      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:return   index   cas   pac   code   ase   length   overflow   integer   

这道题挺经典的,不算难,但是没做过或者好久没做了还是容易忘记方法,另外还涉及了检查上溢下溢的内容:

class Solution {
    public int myAtoi(String str) {
        if (str==null||str.trim().length()<1) return 0;
        char[] schar = str.toCharArray();
        int sign=1,index=0,result=0;
        
        //drop whitespace elements
        while(‘ ‘==schar[index]) {
            index++;
        }
        //sign
        if(schar[index]==‘-‘||schar[index]==‘+‘) {
            sign = (schar[index]==‘-‘)?-1:1;
            index++;
        }
        while(index<str.length()) {
            int digit=schar[index]-‘0‘;
            if(digit<0||digit>9) {
                break;
            }
            //judge overflow
            if(result>(Integer.MAX_VALUE-digit)/10) {
                result = (sign==1)?Integer.MAX_VALUE:Integer.MIN_VALUE;
                break;
            }
            result = result*10+digit;
            index++;
        }
        return result*sign;
    }
}

17ms,100%.

其中,边界条件str.trim()挺重要的,不然对于testcase “  ”就会无法解决。

Leetcode8 String to Integer(atoi)

标签:return   index   cas   pac   code   ase   length   overflow   integer   

原文地址:https://www.cnblogs.com/chason95/p/9974710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!