面试题49:将字符串转换成整数
2016-07-22 20:18
363 查看
题目:实现类似atoi函数。
本题主要考虑各种测试条件。
代码如下:
但此题我并未考虑溢出,看书上得:
for(; i < str.size(); i++)
{
int flag = neg ? -1 : 1;
if((str[i] >= '0') && (str[i] <= '9'))
{
sum =10 * sum + flag * (str[i] - '0');
if((!neg && sum > 0x7FFFFFFF) || (neg && sum < (signed int)0x80000000))
{
sum = 0;
break;
}
}
else
return 0;
}
本题主要考虑各种测试条件。
代码如下:
class Solution { public: int StrToInt(string str) { if(str=="") return 0; int i=0; bool neg=false; if(str[0]=='-') { neg=true; i++; } else if(str[0]=='+') { i++; } int sum=0; for(; i < str.size(); i++) { if((str[i] >= '0') && (str[i] <= '9')) sum =10 * sum + (str[i] - '0'); else return 0; } return ((neg==true) ? 0-sum:sum); } };
但此题我并未考虑溢出,看书上得:
for(; i < str.size(); i++)
{
int flag = neg ? -1 : 1;
if((str[i] >= '0') && (str[i] <= '9'))
{
sum =10 * sum + flag * (str[i] - '0');
if((!neg && sum > 0x7FFFFFFF) || (neg && sum < (signed int)0x80000000))
{
sum = 0;
break;
}
}
else
return 0;
}
相关文章推荐
- 面试题总结:链表类型
- 国内一线互联网公司内部面试题库
- Sun_Java程序员认证考试题库
- java面试题(7.22)
- Android面试常见问题
- 奋斗吧,程序员——第五十六章 千磨万击还坚劲,任尔东西南北风
- Java进阶之路——从初级程序员到架构师
- 读《Android开发艺术探索》后的面试题整理
- 程序员辛辛苦苦一年半,离职四月被起诉
- 对程序员最好的建议是什么?
- 用9种办法解决 JS 闭包经典面试题之 for 循环取 i
- 面试题01
- 国内一线互联网公司内部面试题库
- 一个程序员的进化史-第十章
- 对程序员来说,提高薪水最好的建议是什么?
- 对程序员来说,提高薪水最好的建议是什么?
- 给程序员的建议
- 黑马程序员:Android7.0终极开发者预览版全攻略!
- 关于微软面试100题系列中两道题目的个人解法
- 《Android 开发工程师面试指南》