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();
}
}
Either Excellent or Rusty
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了