String to Integer (atoi)
来源:互联网 发布:如何评价人工智能 编辑:程序博客网 时间:2024/05/16 06:33
题目描述:
Implement atoi to convert a string to an integer.
解题思路:
题目并不难,主要是要考虑各种各样的输入,以及数值超出int范围的情况。
AC代码如下:
class Solution {public:int myAtoi(string str) {long long int ans = 0;int tag = 0; //表示是否已经出现过非空字符,包括'0'-'9'以及'+'或'-'int flag = 0; //表示数值的正负if (str[0] == '-'){flag = 1;tag = 1;}if (str[0] == '+'){flag = 2;tag = 1;}for (int i = 0; i < str.size(); i++){if ((flag == 1 && i == 0) || (flag == 2 && i == 0)){continue;}else if ((ans == 0 && str[i] == ' ') || (ans == 0 && str[i] == '\t')){if (tag == 0)continue;elsereturn 0;}else if (ans == 0 && str[i] == '-'){if (flag == 0){flag = 1;tag = 1;continue;}else{return 0;}}else if (ans == 0 && str[i] == '+'){if (flag == 0){flag = 2;tag = 1;continue;}else{return 0;}}else{if (str[i] >= '0' && str[i] <= '9'){tag = 1;ans = ans * 10 + str[i] - '0';if ((flag == 0 || flag == 2) && ans>(numeric_limits<int>::max)())return (numeric_limits<int>::max)();if (flag == 1 && -1 * ans <(numeric_limits<int>::min)())return (numeric_limits<int>::min)();}else{if (flag == 1)return -ans;elsereturn ans;}}}if (flag == 1) return -ans;return ans;}};
0 0
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- string to integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer(atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- UESTC 2016 Summer Training #1 Div.2 H - Queue (A) 贪心
- POJ 1734 Sightseeing trip
- python3的默认编码
- Selenium自动化测试框架对于日期控件的封装
- Scala break 语句
- String to Integer (atoi)
- Android 打造形形色色的进度条 实现可以如此简单 无需继承view,直接继承progressbar
- [php学习三]表单提交练习
- 在一棵度为3的树中,度为3的节点个数为2,度为2的节点个数为1,则度为0的节点个数为()----百度2016研发工程师笔试题(六)
- 个人博客图片存储
- 我对retrofit的使用
- 使用gitlab进行项目合作开发的操作指南
- 2.1 busybox根文件系统制作
- Servlet学习笔记(缓存设置)