博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8.String to Integer (atoi) (INT; Overflow)
阅读量:5257 次
发布时间:2019-06-14

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

Implement atoi to convert a string to an integer.

Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.

Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.

 

思路:INT最大是2147483647,最小是-2147483648。所以要尤其注意-2147483648取相反数是得不到2147483648的。

class Solution {public:    int myAtoi(string str) {       int ret = 0;       int i = 0;       bool pos = true;              while(str[i] == ' ') i++; //neglect the spaces at the start       if(str[i] == '+') i++;       else if(str[i] == '-') {           pos = false;           i++;       }              while(str[i] != '\0'){           if(str[i] > '9' || str[i] <'0') break; //if invalid digit, stop scanning and return the current result           if(ret > 214748364 || (ret == 214748364 && str[i] - '0' > 7)){ //if overflow, return the extreme value               if(pos) return INT_MAX;               else return INT_MIN;           }           ret = ret * 10 + str[i] - '0';           i++;       }       if(pos) return ret;       else return (-ret);    }};

 

转载于:https://www.cnblogs.com/qionglouyuyu/p/4650176.html

你可能感兴趣的文章
NPOI处理Word文本中上下角标
查看>>
Android笔记 Handler
查看>>
如何阅读大型前端开源项目的源码(转)
查看>>
java.util.Arrays类详解
查看>>
idea搭建tocmat
查看>>
NYOJ-626-intersection set(二分查找)
查看>>
项目管理之路(1):初步踏入项目管理
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
crypto加密
查看>>
Apache Jackrabbit 2.6.0 发布
查看>>
echarts饼图显示百分比
查看>>
JMS消息
查看>>
16位整数,32位整数,64位整数
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
php上传文件及头像预览
查看>>
【译】在Transformer中加入相对位置信息
查看>>
大四java实习生的一些经历
查看>>
python programming
查看>>
线程池的概念
查看>>
USB打印机开钱箱
查看>>