前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode-415-字符串相加

LeetCode-415-字符串相加

作者头像
benym
发布2022-07-14 15:03:18
3050
发布2022-07-14 15:03:18
举报
文章被收录于专栏:后端知识体系后端知识体系

# LeetCode-415-字符串相加

给定两个字符串形式的非负整数 num1num2 ,计算它们的和。

注意:

  1. num1 和num2 的长度都小于 5100.
  2. num1 和num2 都只包含数字 0-9.
  3. num1 和num2 都不包含任何前导零。
  4. 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

# 解题思路

两数相加可以看成一个大数问题,只是这里是String类型的,思路都差不多。直接从字符串尾部开始遍历,设置一个进位符号,如果三者相加比10大说明有进位,此时的数应该%10即可,符号为设置为1,当没有进位的时候设置为0。两个字符串可能不是等长的,超过遍历的情况默认为0。循环结束之后,符号位为1的话说明最高位要进1

# Java代码

代码语言:javascript
复制
class Solution {
    public String addStrings(String num1, String num2) {
        int alen = num1.length()-1,blen = num2.length()-1,carry = 0;
        StringBuilder res = new StringBuilder();
        while(alen>=0||blen>=0){
            int n1 = alen>=0?num1.charAt(alen)-'0':0;
            int n2 = blen>=0?num2.charAt(blen)-'0':0;
            int sum = n1+n2+carry;
            if(sum>=10){
                carry = 1;
                res.append(sum%10);
            }else{
                carry = 0;
                res.append(sum);
            }
            alen--;
            blen--;
        }
        if(carry==1) res.append(1);
        return res.reverse().toString();
    }
}

# Python代码

代码语言:javascript
复制
class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        alen,blen,carry = len(num1)-1,len(num2)-1,0
        res = "";
        while alen>=0 or blen>=0:
            n1 = int(num1[alen]) if alen>=0 else 0
            n2 = int(num2[blen]) if blen>=0 else 0
            sum = n1+n2+carry
            carry = sum//10
            res = str(sum%10)+res
            alen = alen-1
            blen = blen-1
        return "1"+res if carry else res
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # LeetCode-415-字符串相加
    • # 解题思路
      • # Java代码
        • # Python代码
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档