LeetCode 8. String to Integer (atoi)简单易懂的解法
来源:互联网 发布:淘宝店铺年度运营计划 编辑:程序博客网 时间:2024/06/07 05:25
//Author: yqtao//Email : yqtao@whu.edu.cn//Date :2016.7.5/*************************************** Implement atoi to convert a string to an integer.* 实现一个字符串到数字的转换******************************//* this problems is difficult at should check INT_MAX (2147483647) or INT_MIN (-2147483648) it can be complex very we have no idea; for this have two solutions to do:*/#include<iostream>#include<string>#include<cctype>using namespace std;//solution 1:int myAtoi(string str){ int len = str.size(), i = 0; if (len < 1) return 0; while (isspace(str[i])) i++; //skip the space int indicator = 1; if (str[i] == '+' || str[i] == '-') { indicator = (str[i++] == '-') ? -1 : 1; } long long result = 0; //using long long is very simple to solve while ('0' <= str[i] && str[i] <= '9') //can also use isdigit(s[i]) { int digit = str[i] - '0'; result = result * 10 + digit; if (result*indicator >= INT_MAX) return INT_MAX; //you see it is very easy if (result*indicator <= INT_MIN) return INT_MIN; i++; } return result*indicator; }//solution 2int myAtoi1(string str){ int len = str.size(), i = 0; if (len < 1) return 0; while (isspace(str[i])) i++; //skip the space bool neg = false; if (str[i] == '-' || str[i] == '+') { neg = (str[i] == '-'); i++; } int result = 0; while (isdigit(str[i])) { int digit = str[i] - '0'; if (neg) { if (-result < (INT_MIN + digit) / 10) { //it can be difficult to understand return INT_MIN; } } else { if (result >(INT_MAX - digit) / 10) { return INT_MAX; } } result = result * 10 + digit; i++; } return neg ? -result : result;}//testint main(){ string s = " 2147483648 "; cout << myAtoi(s)<< endl;}
0 0
- LeetCode 8. String to Integer (atoi)简单易懂的解法
- LeetCode:String to Integer (atoi)没你想的那么简单
- LeetCode 简单操作 | 8. String to Integer (atoi)
- [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)
- [leetcode] 8.String to Integer (atoi)
- [LeetCode] 8.String to Integer (atoi)
- <LeetCode OJ> 8. String to Integer (atoi)
- leetCode 8. String to Integer (atoi)
- 8. String to Integer (atoi) LeetCode
- leetcode 8. String to Integer (atoi)
- leetcode 8. String to Integer (atoi)
- LeetCode OJ 8.String to Integer (atoi)
- Leetcode ☞ 8. String to Integer (atoi)
- PagerSlidingTabStrip源码解析
- Tomcat 8 .war文件部署出错
- 队列和栈
- java程序员最常用的8个日志框架
- 该如何让自己从一个c++程序员变成一个delphi程序员
- LeetCode 8. String to Integer (atoi)简单易懂的解法
- MTK FileManager无法分享视频到Youtube应用
- 367ValidPerfectSquare
- struts2 中文乱码问题
- asp.net spring.net+mvc 和j2ee spring mvc的思考
- WebView下拉刷新Demo
- -fpic -fPIC -fpie -fPIE
- NSEnumerator用法及找到添加到view中最上层的subview
- 使用Spring Cloud Zuul实现动态路由