Leetcode8 String to Integer(atoi)

Posted chason95

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode8 String to Integer(atoi)相关的知识,希望对你有一定的参考价值。

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

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)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode8.String to Integer (atoi)

LeetCode8. String to Integer (atoi)

LeetCode8. String to Integer (atoi)

leetcode8. String to Integer (atoi)

Leetcode8 String to Integer(atoi)

LeetCode8. String to Integer (atoi) 字符串转整数