415. 字符串相加 + 加法模拟

415. 字符串相加

LeetCode_415

题目详情

方法一:使用暴力法

class Solution {
    public String addStrings(String num1, String num2) {
        int len1 = num1.length();
        int len2 = num2.length();
        int inc = 0;
        String result = "";
        int i=len1-1,j = len2-1;
        for(; i>=0 && j>=0; i--,j--){
            int a = Integer.parseInt(""+num1.charAt(i));
            int b = Integer.parseInt(""+num2.charAt(j));
            int total = inc + a + b;
            inc = total / 10;
            int now = total % 10;
            result = String.valueOf(now) + result;
        }
        if(i >= 0){//num1还有剩余
            for(; i>=0; i--){
                int a = Integer.parseInt(""+num1.charAt(i));
                int total = inc + a;
                 inc = total / 10;
                int now = total % 10;
                result = String.valueOf(now) + result;
            }
        }else if(j >= 0){
            for(; j>=0; j--){
                int b = Integer.parseInt(""+num2.charAt(j));
                int total = inc + b;
                 inc = total / 10;
                int now = total % 10;
                result = String.valueOf(now) + result;
            }
        }
        if(inc != 0)
            result = String.valueOf(inc) + result;
        return result;
    }
}

方法二:使用StringBuilder

class Solution {
    public String addStrings(String num1, String num2) {
        int len1 = num1.length() - 1;
        int len2 = num2.length() - 1;
        int inc = 0;
        StringBuilder sb = new StringBuilder();
        while(len1 >= 0 || len2 >= 0){
            int a = len1 >=0 ? num1.charAt(len1) - '0' : 0;
            int b = len2 >=0 ? num2.charAt(len2) - '0' : 0;
            int total = inc + a + b;
            inc = total / 10;
            sb.append(total % 10);
            len1--;
            len2--;
        }
        if(inc == 1)
            sb.append("1");
        sb.reverse();
        return sb.toString();
    }
}
posted @   Garrett_Wale  阅读(97)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示