博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer系列39:把字符串转换成整数
阅读量:5326 次
发布时间:2019-06-14

本文共 1368 字,大约阅读时间需要 4 分钟。

主要代码其实很少,主要是对各种情况的判断。在做题的时候一定要考虑到各种情况的非法输入。

1.前面的空格需要跳过

2.判断数字的正负号并记录

3.如果有非法输入例如字母和其他非数字和正负号的字符,退出返回0

4.返回的是一个数字,所以一定要考虑数字的边界问题

5.对于各种情况考虑到之后最好再加一个无条件的输出语句,防止没有考虑到的情况发生

1 class Solution { 2 public: 3     int StrToInt(string str) { 4         if (str.empty()) 5             return 0; 6         auto t = str.begin(); 7         while (*t == ' '&&t!=str.end()-1)//排除前面的空格 8         { 9             t++;10         }11         bool neg = false;//符号判断位,默认为正数12         if (*t == '+')13         {14             t++;15         }16         else17         {18             if (*t == '-')19             {20                 t++;21                 neg = true;22             }23 24         }25         long long int val = 0;26         for (; t != str.end(); t++)27         {28             if (*t >= '0'&&*t <= '9')//这里是将字符串转换为数字的基础操作,记住29             {30                 val *= 10;31                 val += *t-'0';32                 if ((neg&&val < INT_MIN) || (!neg&&val > INT_MAX))//判断数字是否越界33                 {34                     return 0;35                 }36             }37             else38             {39                 return 0;40             }41         }42         if (t != str.end())43             return 0;44         if (neg)45             return -val;46         else47             return val;48     }49 };

 

转载于:https://www.cnblogs.com/neverland0718/p/11237029.html

你可能感兴趣的文章
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
使用命令创建数据库和表
查看>>
【转】redo与undo
查看>>
wpf样式绑定 行为绑定 事件关联 路由事件实例
查看>>
Oracle事务
查看>>
String类中的equals方法总结(转载)
查看>>
标识符
查看>>
内存地址对齐
查看>>
创新课程管理系统数据库设计心得
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
MyBaits学习
查看>>
管道,数据共享,进程池
查看>>
[Cypress] Stub a Post Request for Successful Form Submission with Cypress
查看>>
SDUTOJ3754_黑白棋(纯模拟)
查看>>
php中的isset和empty的用法区别
查看>>
把word文档中的所有图片导出
查看>>