public class Solution { public int myAtoi(String str) { int result=0; if (str.equals ("") || str.trim().equals("")) { return 0; } if (!str.equals ("") && !str.trim().equals("")) { int MAX = Integer.MAX_VALUE; int MIN = Integer.MIN_VALUE; final char PLUS = '+'; final char MINUS = '-'; int ret = 0; int flag = 1; String s = str.trim(); int MAX_DIV = MAX/10; int MIN_DIV = -1*(MIN/10); int MAX_R = MAX%10;//最大值取余 int MIN_R =(MIN%10);//最小值取余 // record the last number's position char ch = s.charAt(0); int i=0; // may be start as "+" or "-" if('-'==s.charAt(0)){ ++i; flag = -1; } if('+'==s.charAt(0)){ ++i; flag = +1; } for (; i < s.length(); i++) { int r = s.charAt(i) - '0'; if (s.charAt(i) == '-' || s.charAt(i) == '+') { result = 0; break; } if (s.charAt(i) >= '0' && s.charAt(i) <= '9') { System.out.println(r); if (flag > 0 && (result > MAX_DIV ||( (result ==MAX_DIV && r>7)))) { result = MAX; System.out.println("MAX"); break; } if (flag < 0 && (result > MIN_DIV ||( result == MIN_DIV&&(8 < r)))) { result = MIN; System.out.println("MIN"); break; } else result = result * 10 + r; } else { break; } } return flag * result; } return 0; } }
leetcode atoi java_leetcode之atoi() in java
最新推荐文章于 2021-02-26 22:34:10 发布