lintcode 转换字符串到整数
来源:互联网 发布:朗读英语的软件 编辑:程序博客网 时间:2024/06/01 07:21
转换字符串到整数
实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。
样例
"10" =>10
"-1" => -1
"123123123123123" => 2147483647
"1.0" => 1
标签
相关题目
(一).""的话返回0。
(二).字符串两边有空格自动屏蔽,有小数点小数点后面的内容舍弃。
(三)."+123"和"123"效果一样。
(四)."a...","-h..."这种,除了符号位只要非数字打头,返回0。
(五)."123gdah3423","-123ff777"这种返回123,-123。
(六).超了范围之后,判断正负性。
先上自己部分正确的代码,现在是第五条不满足条件,有时间修改一下
9.14更新,代码通过,就是有点乱。。
class Solution {public: /* * @param str: A string * @return: An integer */ private: bool Sign=true;//判断正负 public: int atoi(string &str) { // write your code here int num=0,i=0; long sum=0; int p=0;//判断第一个符号位 bool no_zero=false;//遇到第一个非0 bool no_blank=false; for(;i<str.size();i++) { if(!no_blank&&str[i]==' ')//检查头部空格 { continue; } no_blank=true; if((p==0)&&(str[i]=='+'||str[i]=='-'))//检查头部符号 { p++; if(str[i]=='+') Sign=true; else if(str[i]=='-') Sign=false; continue; } if((str[i]-'0'<0||str[i]-'0'>9)&&str[i]!='.')//去除非小数点字符 { if(Sign) return (int)sum; else return 0-(int)sum; } if((no_zero)&&str[i]=='.')//遇到小数点且前面的数字不是0 { if(Sign) return (int)sum; else return 0-(int)sum; } if(!no_zero&&str[i]=='0')//去掉第一个非0数前的0 { continue; } else { p++; no_zero=true;//走到这里一定不是0; sum=sum*10+(str[i]-'0'); num++; } if(num==10) { if((Sign==true)&&(sum>2147483647)) { return INT_MAX; } if((Sign==false)&&(abs(sum)>2147483648)) { return INT_MIN; } } if(num>10) { if(Sign==true) return INT_MAX; if(Sign==false) return INT_MIN; } } if(Sign) return (int)sum; else return 0-(int)sum; }};
转换字符串到整数
Accepted
总耗时: 360 ms
100% 数据通过测试.
还没解决的相关题目
阅读全文
0 0
- lintcode-转换字符串到整数
- lintcode,转换字符串到整数
- Lintcode 转换字符串到整数
- lintcode -- 转换字符串到整数
- LintCode:转换字符串到整数
- lintcode 转换字符串到整数
- 转换字符串到整数——LintCode
- lintcode之转换字符串到整数
- LintCode 54- 转换字符串到整数
- LintCode 54 转换字符串到整数
- [LintCode]54.转换字符串到整数
- LINTCODE——转换字符串到整数
- LintCode-剑指Offer-(54)转换字符串到整数
- 转换字符串到整数
- 转换字符串到整数
- 转换字符串到整数
- 转换字符串到整数
- Miscellaneous | 转换字符串到整数
- 指针的一个问题思考
- 关于JAVA中RSA加签解签,私钥加密公钥解密和公钥加密私钥解密代码步骤
- 指针学习
- BZOJ 2140 稳定婚姻
- [LeetCode] 561.Array Partition I 备忘
- lintcode 转换字符串到整数
- C 指针操作说明上
- PHP进阶(第九弹:日期时间函数)
- LeetCode-Q22-Generate Paretheses
- APNG在QT中的使用(一)
- Maven学习笔记——新建maven web项目缺失文件夹的问题解决
- TabLayout && ViewPager _布局文件
- 嵌入式开发学习课程
- Android 手写数据库框架