当前位置: 首页 > news >正文

一个人做导购网站2023广东最新疫情

一个人做导购网站,2023广东最新疫情,汝阳建设局网站,个体工商户年审营业执照LCR 192. 把字符串转换成整数 (atoi) - 力扣(LeetCode) 我们以力扣的此题目为例,简述在诸如大数运算等问题中如何限制数字溢出问题。 先来直接看看自己的处理方式: class Solution { public:int myAtoi(string str) {int pcur0;…

LCR 192. 把字符串转换成整数 (atoi) - 力扣(LeetCode)

我们以力扣的此题目为例,简述在诸如大数运算等问题中如何限制数字溢出问题。

先来直接看看自己的处理方式: 

class Solution {
public:int myAtoi(string str) {int pcur=0;int flag=0;if(str.size()==0) return 0;while(str[pcur]==' '||str[pcur]=='-'||str[pcur]=='+'){if(str[pcur]=='-'||str[pcur]=='+') {if(str[pcur]=='-')flag=1;//找到负数标志++pcur;break;}   ++pcur;}if(!isdigit(str[pcur])) return 0;long ans=0;long ans1=0;while( pcur!=string::npos && str[pcur]<='9'&& str[pcur]>='0'){ans1=(str[pcur]-'0'+ans*10);if(ans1>INT_MAX){ans=INT_MAX;break;}ans=(int)ans1;++pcur;}if(flag){if(ans==INT_MAX && ans1 != INT_MAX) ans=-ans-1;else ans=-ans;};return ans;}
};

 

 题目前置的转换空格与正负号等都不是主要问题。由于计算机对于有符号整形的储存特点,INT_MIN是-2147483648(2^31) 而INT_MAX是2147483647(2^31-1),原来使用的是一个ans1提前帮助ans探路是否超过INT_MAX 或者INT_MIN,但是最终代码较为冗余。我们看看该如何控制最后的这段判断是否溢出的逻辑:


1.我们直接把界限设在INT_MAX/10的位置上

int border = INT_MAX / 10;  // 用来验证计算结果是否溢出int范围的数据
while (i < str.size())
{// 遇到非数字字符,则返回已经计算的res结果if (str[i] < '0' || str[i] > '9')break;// 注意这句话要放在字符转换前,因为需要验证的位数比实际值的位数要少一位, 这里比较巧妙的地方在于// 1. 用低于int型数据长度一位的数据border判断了超过int型数据长度的值 // 2. 将超过最大值和低于最小值的情况都包括了if (res > border || res == border && str[i] > '7')return sign == true ? INT_MAX : INT_MIN;//开始对数字字符进行转换num = str[i] - '0';res = res * 10 + num;i++;

2.然后正常判断是否需要跳出

3.最关键的一步:

 if (res > border || res == border && str[i] > '7')return sign == true ? INT_MAX : INT_MIN;

因为我们提前了一位border,所以在将新的一位数字加在我们原本数字的基础前,已经比border大的再加一位一定是溢出;已经等于214748364的,下一位是8或者9的也可以直接在下一步取溢出值。这样就避免了真的去计算可能溢出的值而导致混乱。这种方法的精髓就是并没有真正去计算在溢出边缘的这一位会如何如何,而是提前根据范围判断出是否溢出,减少麻烦。

http://www.zhongyajixie.com/news/17331.html

相关文章:

  • 企业网站建设方案书范文百度网盘资源分享
  • 做宣传片的网站新闻头条国内大事
  • 网站制作设计桌面百度
  • 个人网站 创意行者seo无敌
  • wordpress网站换空间必应搜索引擎国际版
  • 平台b2c网站建设百度统计数据分析
  • 自己做的网站访问不了semifinal
  • 灵寿网站建设搜索引擎优化服务
  • WordPress网站打不开nginx软文发稿网
  • 网站前端开发上海seo优化公司 kinglink
  • 做业务需要知道哪些网站长沙百度关键词搜索
  • 购物网站建设思维导图北京发生大事了
  • 免费的网站推广渠道西安seo外包优化
  • wordpress选择虚拟云主机杭州明开seo
  • 行业信息网站有哪些百度广告投诉电话
  • 开源网站建设seoapp推广
  • 用dw做动态网站乱码怎么弄今日热点新闻事件摘抄
  • 龙岩做网站开发大概价格市场seo是什么意思
  • 网站建设的思想西地那非片的正确服用方法
  • 贵港市城乡建设委员会网站电商关键词一般用哪些工具
  • wordpress站点克隆知乎小说推广对接平台
  • 用jsp做网站百度推广登录平台app
  • 国内规模大的建站公司北京seo优化公司
  • 浙江省城乡和建设厅网站网络整合营销策划书
  • 有几个网站能在百度做推广建网站怎么建
  • 做bbs网站教程app拉新平台
  • 网站添加百度搜索在线网站建设平台
  • 哈尔滨网站建设nsstd周口搜索引擎优化
  • 中国站长素材网深圳债务优化公司
  • 无障碍浏览网站怎么做宁德市古田县