题解 | #大数加法#

大数加法

https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475?tpId=295&sfm=html&channel=nowcoder

string solve(string s, string t) {
        // 
        int n1=s.size();
        int n2=t.size();
        //默认s长度长。
        if(n1<n2) 
        {
        s.swap(t);
        swap(n1,n2);
        }
        if(n1==0) 
        return t;        
        if(n2==0) 
        return s;
        int indexs=n1-1;
        int indext=n2-1;
        int flag=0;
        while(indext>=0)
        {
            int val=s[indexs]-'0'+t[indext]-'0'+flag;
            flag=val/10;
            s[indexs]=val%10+'0';
           // cout<<val<<endl;
            indext--;
            indexs--;
        }
        while(flag)
        {
            int val;
            if(indexs>=0)
            {
                val=flag+s[indexs]-'0';
                s[indexs]=val%10+'0';
                flag=val/10;
                indexs--;
            }else
            {
                s.insert(s.begin(),flag%10+'0');
                flag/=10;
            }
        }
        return s;
    }

在原来的字符串上面加。不浪费空间。

全部评论

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务