LintCode 54 转换字符串到整数
来源:互联网 发布:怎么制作视频软件 编辑:程序博客网 时间:2024/05/16 11:38
题目:atoi
要求:
实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。
样例:
“10” =>10
“-1” => -1
“123123123123123” => 2147483647
“1.0” => 1
算法要求:
无
解题思路:
去除多余的空格和0,判断符号, 去除无关检测。
注意界限判断。
算法如下:
int atoi(string str) { // write your code here long long num = 0; int size = str.size(); int i = 0; int isF = 0;// 记录是不是负数,大于0 则为 负数 // 判断符号去除多余的0 和 空格 while (i < size) { if (str[i] == '0' || str[i] == ' ') { i++; } else if (str[i] == '-'){ if (isF != 0) { return 0; } isF++; i++; } else if (str[i] == '+'){ if (isF != 0) { return 0; } isF--; i++; } else if (isdigit(str[i])) { break; }else { return 0; } } // 进行计算,遇到非数字的则输出当前的值 while (i < size) { if (isdigit(str[i]) != 0) { num *= 10; num += str[i] - '0'; if (num >= 2147483647 && isF <= 0) { return 2147483647; } else if (num >= 2147483648 && isF > 0) { return -2147483648; } } else { if (isF > 0) { return -(int)num; } else { return (int)num; } } i++; } if (isF > 0) { return -(int)num; } else { return (int)num; } }
0 0
- LintCode 54- 转换字符串到整数
- LintCode 54 转换字符串到整数
- lintcode-转换字符串到整数
- lintcode,转换字符串到整数
- Lintcode 转换字符串到整数
- lintcode -- 转换字符串到整数
- LintCode:转换字符串到整数
- lintcode 转换字符串到整数
- LintCode-剑指Offer-(54)转换字符串到整数
- 转换字符串到整数——LintCode
- lintcode之转换字符串到整数
- [LintCode]54.转换字符串到整数
- LINTCODE——转换字符串到整数
- 转换字符串到整数
- 转换字符串到整数
- 转换字符串到整数
- 转换字符串到整数
- <LeetCode> 题54:转换字符串到整数
- enote笔记语言(4)(ver0.3)——“5w1h2k”分析法
- linux内核模块初始化
- 存储系统
- uva 1640 两种方法 数位dp或枚举计算
- NYOJ234吃土豆(双层动态规划)
- LintCode 54 转换字符串到整数
- NUC1937 B.函数
- 2017年第十届华中地区大学生数学建模邀请赛经典赛B题 基于通讯数据的社群聚类
- I Hate It
- HashTable和ConcurrentHashTable
- python爬虫之BeautifulSoup
- Oracle数据库如何查看当前服务器有多少个数据库?
- 4.29 JLL_实习日志
- spring4中@value在子父容器中使用时遇到的问题