leetcode: string to integer (atoi)
2015-03-11 16:00
357 查看
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
accepts a
reset your code definition.
spoilers alert... click to show requirements for atoi.
C++中的long long 和 _int64 的用法和说明:http://www.360doc.com/content/10/0407/18/59141_21980461.shtml
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.
spoilers alert... click to show requirements for atoi.
C++中的long long 和 _int64 的用法和说明:http://www.360doc.com/content/10/0407/18/59141_21980461.shtml
#include<iostream> #include<string> using namespace std; class Solution { public: int atoi(string str) { /* https://msdn.microsoft.com/zh-cn/library/4kh09110 * question: 为什么就不能定义,int min = -214783648 呢, * 用这个取代(-1)*(max + 1) 为什么就不行呢????? */ if (str == "" || str.length() < 1) return 0; int max = 2147483647; long long sum = 0; int flag = 1; int i = 0, j = 0; while (i < str.length()) { if (str[i] == ' ') i++; else break; } if (str[i] == '-' || str[i] == '+') { if (str[i] == '-') flag = -1; i++; } cout << flag << endl; for (j = i; j < str.length(); j++) { if (str[j] >= '0' && str[j] <= '9') { sum = sum * 10 + (str[j] - '0'); if (flag*sum > max) { return max; } if (sum*flag < (-1)*(max + 1)) { return (-1)*(max + 1); } } else { break; } } if (flag == -1) { sum = sum*(-1); } return sum; } }; void main() { string str = "2147483648"; Solution s; long long n = s.atoi(str); cout << n << endl; }
相关文章推荐
- leetcode 54: String to Integer (atoi)
- Leetcode : String to Integer (atoi)
- LeetCode-String to Integer (atoi)
- Leetcode: String to Integer (atoi)
- leetcode -- String to Integer (atoi)
- leetcode 54: String to Integer (atoi)
- [leetcode]String to Integer (atoi)
- LeetCode-String to Integer (atoi)
- [leetcode刷题系列]String to Integer (atoi)
- LeetCode:String to Integer (atoi)
- [leetcode] String to Integer (atoi)
- LeetCode - String to Integer (atoi)
- leetcode String to Integer (atoi)Dec 27 '117626 / 35090
- [LeetCode] String to Integer (atoi) 解题报告
- LeetCode 8 - String to Integer (atoi)
- 【leetcode】String to Integer (atoi)
- [LeetCode]String to Integer (atoi)
- LeetCode :String to Integer (atoi)
- LeetCode - String to Integer (atoi)
- LeetCode: String to Integer (atoi)