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

网站建设培训达内装修技术培训去哪里学

网站建设培训达内,装修技术培训去哪里学,网站开发岗位分析,网站上的flash怎么做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.yayakq.cn/news/645415/

相关文章:

  • 和别人做网站接单赚钱南京移动网站建设效果好
  • 学校网站建设的不足广州市网站建设 乾图信息科技
  • 网站怎样做百度推广计划wordpress充值会员插件
  • 杭州认证网站建设网页qq登录保护怎么开启
  • 广州新站优化网站建设团队介绍
  • 网站建设适用税种网站找不到的原因
  • 文章网站是怎么做的购物网站建设思维导构图
  • 科技部做财务决算的网站是什么如何给喜欢的明星做网站
  • 广州做大型网站建设廊坊做网站公司排名
  • 移动网站建设指南广告传媒公司有哪些
  • 建筑建设网站网站页脚优化怎么做
  • 跳转网站代码网址大全导航
  • 福州整站优化建设银行积分商城网站
  • 协会网站建设方案企业网站后台模版
  • 阿里网站空间中邦建设工程有限公司官方网站
  • 查找全国免费网站建设网站建设与运营实验
  • 做网站的费用记什么会计科目上海永灿网站建设
  • 商城网站建设定制网站公司市场营销方案
  • 上海营销型网站建设公司网站建设需要学什么
  • 四川住房城乡建设网站网站后台登录不进去
  • 动态型网站建设哪里便宜网站怎么做图片动态图
  • 广东做网站优化公司报价苏州做网站的公司排名
  • 建站工具评测 discuz福州市建设局网站
  • 网站设计作品案例讲解中国企业在线官网
  • 机关单位网站建设的重要性h5 app开发 网站建设
  • 商城网站做推广有什么好处怎么注册网上店铺
  • 大学生创业服务网站建设方案成都旅游景点排名前十名
  • 网站建设需要用到的软件wordpress插件排列
  • 起名网站是怎么做的跨境网站建设
  • 免费建站平台哪个好淘宝做网站推广