您当前的位置: 首页 >  liyatjj leetcode

LeetCode字符串相加

liyatjj 发布时间:2022-04-28 09:01:57 ,浏览量:5

字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

示例 1: 输入:num1 = “11”, num2 = “123” 输出:“134”

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-strings

思路就是字符串按位进行相加,每一位可以定义为int,每次只取它的一位就好,要注意有进位的情况,当有进位时需要在下一次相加时加上进位。还有考虑当某一个字符串位数不够时,即已经超出了字符串长度时,需要在相应的位补0。 计算完之后得到的结果是逆序的,需要reverse。

class Solution {
    public String addStrings(String num1, String num2) {
        int i=num1.length()-1,j=num2.length()-1;
        int result=0;
        int a=0;
        StringBuffer s = new StringBuffer();
        int k=0;
        int m=0;
        while(i>=0||j>=0||a!=0)
        {
            if(i>=0)
                k=num1.charAt(i)-'0';
            else
                k = 0;
            if(j>=0)
                m = num2.charAt(j)-'0';
            else
                m=0;

            result=k+m+a;
            a=result/10;
            s.append(result%10);
            i--;
            j--;

        }
        s.reverse();
        return s.toString();
    }
}

i,j是指针,而要不要补位0,应当判断字符串长度是否已经为0,即i,j是否为0; k,m是取出的每一位的值,result是每次两位相加的结果,当然最后要的是result%10,进位a=result/10。 最后reserve一下,返回就好。

关注
打赏
1688896170
查看更多评论

liyatjj

暂无认证

  • 5浏览

    0关注

    99博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0551s