剑指 Offer.67-将字符串转化为整数
剑指 Offer.67-将字符串转化为整数
题目链接
剑指 Offer 67. 把字符串转换成整数
问题描述
写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。
个人想法(模拟)
直接按照题意进行模拟
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| class Solution { public int strToInt(String str) { String s = str.trim(); int sign = 1; int res = 0; int pos = 0; int budry = Integer.MAX_VALUE / 10; if(s == null || s.length() == 0) return 0; if(s.charAt(0) == '-'){ sign = -1; pos++; }else if(s.charAt(0) == '+'){ sign = 1; pos++; }else if(s.charAt(0) >='0' && s.charAt(0) <='9'){ sign = 1; }else{ return 0; }
for(int i=pos;i<s.length();i++){ if(!(s.charAt(i)>='0' && s.charAt(i)<='9')){ break; } if(res > budry || (res == budry && s.charAt(i) > '7')){ if(sign == 1){ return Integer.MAX_VALUE; }else if(sign == -1){ return Integer.MIN_VALUE; } } res = res * 10 + (s.charAt(i)-'0'); }
return res*sign; } }
|