想要一次性想到所有的规则可有点难度,尤其是溢出的处理。
public int atoi(String str) { // Start typing your Java solution below // DO NOT write main() function if(str.length() == 0) return 0; int i=0; int flag = 1; long tmp = 0; while(str.charAt(i)==' ') i++; if(str.charAt(i) == '+') i++; if(str.charAt(i) == '-') { i++; flag = -1; } for(int j=i; j<str.length(); j++){ if(str.charAt(j)>'9' || str.charAt(j)<'0') break; tmp = (str.charAt(j) - '0') + tmp * 10; } tmp = tmp * flag; if(tmp>Integer.MAX_VALUE) tmp = Integer.MAX_VALUE; else if (tmp<Integer.MIN_VALUE) tmp = Integer.MIN_VALUE; return (int)tmp; }