请选择 进入手机版 | 继续访问电脑版

【Codewars】<4kyu>Sum Strings as Numbers

[复制链接]
云韵 发表于 2020-12-31 18:09:24 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

题目

<4kyu>Sum Strings as Numbers
  Given the string representations of two integers, return the string representation of the sum of those integers.
A string representation of an integer will contain no characters besides the ten numerals “0” to “9”.


给定两个整数的字符串体现形式,返回这些整数之和的字符串体现形式。
(注:这两个字符串将不包罗除“0”到“9”之外的任何字符。)
例子

  1. sumStrings('1','2') // => '3'sumStrings('','5') // => '5'sumStrings('001','5') // => '6'sumStrings('50095301248058391139327916261','81055900096023504197206408605') // => '131151201344081895336534324866'
复制代码
题解一

  1. // 题解一:function sumStrings(a,b) {    var result = &#39;&#39;;    var remainder = 0;    if(a.length < b.length) {        var c = a;        a = b;        b = c;    }    for(let i=1;i0 ? parseInt(a.substr(a.length-i,1)) : 0) + (b.length-(i-1)>0 ? parseInt(b.substr(b.length-i,1)) : 0)  + remainder;        // 求和后去取余,就是该位要生存的数字        result = sum%10 + result        // 盘算余数        remainder = parseInt(sum/10)        // 如果到了最左边,即a的第一位,余数还大于0,则直接加上余数        if(remainder > 0 && i == a.length) result = remainder + result;    }    return result.replace(/\b(0+)/gi,""); // 去除字符串前面的0}
复制代码
题解二(Best Practices)

  1. // 题解二:function sumStrings(a, b) {    var res = &#39;&#39;, c = 0;    a = a.split(&#39;&#39;);    b = b.split(&#39;&#39;);    while (a.length || b.length || c) {      c += ~~a.pop() + ~~b.pop();      res = c % 10 + res;      c = c > 9;    }    return res.replace(/^0+/, &#39;&#39;);}
复制代码
小伙伴们有别的更好的解法,接待评论区提出交换~

来源:https://blog.csdn.net/weixin_36270908/article/details/111994142
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )