<LeetCode OJ> 8. String to Integer (atoi)
来源:互联网 发布:云南网星大数据 编辑:程序博客网 时间:2024/05/04 13:05
Implement atoi to convert a string to an integer.
Hint: Carefully consider all possible input cases. If you want a challenge,
please do not see below and ask yourself what are the possible input cases.
Notes: It is intended for this problem to be specified vaguely (ie, no given input specs).
You are responsible to gather all the input requirements up front.
Update (2015-02-10):
The signature of the C++
function had been updated. If you still see your function signature accepts a const char *
argument,
please click the reload button to reset your code definition.
首先分析:
难点在于异常情况的处理,很难考虑全面:实际上模拟人性错误习惯,以下答案为别人的答案
1、处理输入空
2、处理数字前面有空格
3,判断符号位:先出现的就是符号位
4、处理数字前面的0
5、处理输入非法,函数输出0
6、处理溢出情况class Solution {public: int myAtoi(string str) { //1,处理空情况 int len=str.size(); if(len == 0) return 0; //2,过滤掉数字前面的空格 int i=0; while(str[i] == ' ') i++; //3,判断符号位 int sign = 0; if(str[i] == '-') { sign = 0; i++; } else if(str[i] == '+') { sign=1; i++; } //4,过滤掉数字前面的0 while(str[i] == '0') i++; int res = 0, lastRes = 0; //5,转换字符数字,不是字符数字不要处理 int limit = INT_MAX / 10; while(i<str.size() && str[i] >= '0' && str[i] <= '9') { if(limit < res) return sign == 1 ? INT_MAX : INT_MIN;//判断是否溢出(两个数相乘溢出后,溢出的结果不一定比两个乘数小) lastRes = res; res = res*10 + (int)(str[i] - '0'); if(res < lastRes) return sign == 1 ? INT_MAX : INT_MIN;//判断是否溢出 i++; } return sign == 1 ? res : -1*res; }};
注:本博文为EbowTang原创,后续可能继续更新本文。如果转载,请务必复制本条信息!
原文地址:http://blog.csdn.net/ebowtang/article/details/50511705
原作者博客:http://blog.csdn.net/ebowtang
- <LeetCode OJ> 8. String to Integer (atoi)
- LeetCode OJ 8.String to Integer (atoi)
- leetCode OJ 8. String to Integer (atoi)
- LeetCode OJ:String to Integer (atoi)
- LeetCode OJ - String to Integer (atoi)
- [LeetCode OJ][008]String to Integer (atoi)
- LeetCode OJ String to Integer (atoi)
- LeetCode OJ - String to Integer (atoi)
- LeetCode OJ算法题(八):String to Integer (atoi)
- LeetCode OJ 之 String to Integer (atoi字符串转数字)
- [LeetCode OJ]ZigZag Conversion && Valid Sudoku && String to Integer (atoi)
- LeetCode OJ 8 String to Integer (atoi) [Medium]
- [LeetCode]8. String to Integer (atoi)
- LeetCode 8. String to Integer (atoi)
- 8. String to Integer (atoi) Leetcode Python
- LeetCode --- 8. String to Integer (atoi)
- LeetCode 8.String to Integer (atoi)
- [Leetcode] 8. String to Integer (atoi)
- 臭石头的使用(Cornerstone),冲突的解决
- 进制转换函数
- 常用的电压基准芯片
- K中心点算法(K-medoids)
- Eclipse快捷键
- <LeetCode OJ> 8. String to Integer (atoi)
- iOS开发之文件下载
- 前端h5开发学习
- compile static perl on fedora
- oracle 结构的理解~~~
- linux Shell编程入门
- .NET Remoting 使用总结
- Android push apk - bat
- OC学习 第八节 NSData NSSet