多考虑一些细节即可
- class Solution {
- public int myAtoi(String str) {
- long ans = 0,MAX_INT = (long)Integer.MAX_VALUE + 1;
- boolean flag = false;
- int st = 0;
- while(st < str.length() && str.charAt(st) == ' ') {
- st++;
- }
- if(st < str.length() && str.charAt(st) == '+')
- st++;
- else {
- if(st < str.length() && str.charAt(st) == '-') {
- st++;
- flag = true;
- }
- }
- for(int i = st;i < str.length();i++) {
- if(str.charAt(i) <= '9' && str.charAt(i) >= '0') {
- ans = ans * 10 + str.charAt(i) - '0';
- if(ans > MAX_INT)
- ans = MAX_INT;
- }
- else
- break;
- }
- if(flag)
- ans = -ans;
- if(ans > Integer.MAX_VALUE)
- ans = Integer.MAX_VALUE;
- if(ans < Integer.MIN_VALUE)
- ans = Integer.MIN_VALUE;
- return (int)ans;
- }
- }