小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且
每道题小编当时都总结了一种最适合面试时手撕算法的最优解法
。
考虑到
剑指offer算法题在面试中的高频出现
,小编每天和大家分享一道剑指offer上的算法题,以及小编总结的答案。下面是
第049是
道剑指offer算法题:
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
示例1
输入
+2147483647
1a33
输出
2147483647
0
分析:
这道题主要考察编码能力,没有涉及到算法,所以直接上代码。本题的细节比较多,建议自己先手写一遍。
public class Solution { public int StrToInt(String str) { //字符0 ASCII为48 9为57;不在这范围内的都不是数字 //另外,a:97 A:65 z:122 Z:90 boolean isLegal = true; boolean isNegative = false; int res = 0; for(int i=0;i char temp = str.charAt(i); if(i==0){ if(temp=='-'){ isNegative = true; continue; }else if(temp=='+'){ isNegative = false; continue; } } if(temp<'0' || temp>'9'){ isLegal = false; break; }else{ int num = temp - '0'; res *= 10; res += num; } } if(!isLegal) return 0; if(isNegative) return -res; return res; }}
猜你还想看
高考填志愿:优先选专业?还是优先选学校?优先选学校?各高校毕业生薪资统计!!
优先选专业?各专业薪资统计!!
长按,扫码,关注
及时收看更多精彩内容
博主:今日头条大数据工程师专注:求职 面经 源码 java 大数据技术分享
点击”阅读原文“:领取5T精品资料,面试总结、100+实战项目
我知道你 “在看”