标签:
把所给的字符串按照规定转化成相应的数字。要考虑溢出的情况,含有非法字符的情况,数字前有空格的情况。但是还是比较简单的。
public class Solution { public int atoi(String str) { StringBuilder s = new StringBuilder(str.trim()); if(s.length() == 0) return 0; int flag1 = 0, flag2 = 0; // + - long ans = 0; int i = 0; if(s.charAt(i) == ‘+‘) { flag1 ++; i ++; } else if(s.charAt(i) == ‘-‘) { flag2 ++; i ++; } for(;i<s.length(); i++) { if(s.charAt(i)>=‘0‘ && s.charAt(i)<=‘9‘) { if(flag2 == 1) { ans = -(s.charAt(i) - ‘0‘); flag2 ++; } else if(flag2 == 2) { ans = ans * 10 - (s.charAt(i) - ‘0‘); if(ans < -2147483648L) return -2147483648; } else { ans = ans * 10 + (s.charAt(i) - ‘0‘); if(ans > 2147483647L) return 2147483647; } } else break; } return (int)ans; } }
LeetCode - String to Integer (atoi)
标签:
原文地址:http://www.cnblogs.com/wxisme/p/4384729.html