标签: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