题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 

【思路】考虑所有特殊情况

1.数字前面有空格,如s="    123456",空格需舍弃。
2.数字前出现了不必要或多于的字符导致数字认证错误,输出0。如s="   b1234",s="  ++1233", s=" +-1121"。
3.数字中出现了不必要的字符,返回字符前的数字。如s="   12a1", s=" 123  123"。
4.数字越界,超过了范围(-2147483648--2147483647),分别返回-2147483648和2147483647。

 class Solution
{
public:
int StrToInt(string str)
{
if(str == "") return ;
int i = ,flag = ;
long long num = ;
while(str[i] != '\0' && str[i] == ' ') i ++;//去掉开头空格
if(str[i] == '+') i ++; //处理开头正负号
else if(str[i] == '-')
{
flag = -;
i ++;
}
while(str[i] != '\0')
{
if(str[i] >= '' && str[i] <= '')
{
num = num * + str[i] - '';
i ++;
if(num > INT_MAX){
return (flag == )?INT_MAX:INT_MIN;
}
}
else return ;
}
num *= flag;
return num;
}
};

最新文章

  1. 为什么 input 元素能用 width 属性
  2. 【转】C#多线程学习
  3. [SqlServer]创建链接服务器
  4. uC/OS-II中includes块
  5. json_encode() 和 json_decode()
  6. WPS 文字排版 标题回车后标题号自动增加
  7. 【jquery】一款不错的音频播放器——Amazing Audio Player
  8. C# Windows - TabControl
  9. Linux Shell常用命令手册(Updating)
  10. 在TreeWidget中增加右键菜单功能 以及TreeWidget的基本用法
  11. iframe框架子页面与父页面间的通信
  12. WEB版一次选择多个图片进行批量上传(WebUploader)的解决方案
  13. 浅谈-RMQ
  14. mysql 索引列为Null的走不走索引及null在统计时的问题
  15. SQL server 2017使用教程
  16. kod 编辑器下载
  17. 一般xcode报错
  18. MySQL安装的挫折之路
  19. 【逆向笔记】OD工具使用-逆向TraceMe.exe
  20. PHP实现批量删除(封装)

热门文章

  1. 20145234黄斐《Java程序设计》第八周学习总结
  2. android学习十 ActionBar
  3. Appium(Python)驱动手机淘宝App
  4. git服务器搭建及eclipse使用git
  5. CodeForces - 913C(二进制)
  6. (一)Spring Boot修改内置Tomcat端口号--解决tomcat端口被占用的问题
  7. 天平 (Not so Mobile UVA - 839)
  8. 【QT】宏
  9. [HNOI2017]影魔
  10. php redis和java混用问题