0
点赞
收藏
分享

微信扫一扫

【LeeCode】415. 字符串相加

【题目描述】

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

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

​​https://leetcode.cn/problems/add-strings/description/​​


【示例】

【LeeCode】415. 字符串相加_java


【代码】​​LeeCode​​

package com.company;
// 2023-03-06
import java.util.*;

class Solution {
public String addStrings(String num1, String num2) {
int m = num1.length() - 1;
int n = num2.length() - 1;
StringBuilder sb = new StringBuilder();
// 记录中间大于10以后的十位数
int sum = 0;
// 定义2个个指针m和n, 指向最低位
while (m >= 0 || n >= 0 || sum != 0){
// '2' - '0' --> 返回int类型
// 如果位数不同, 则需要补0
int x = m >= 0 ? num1.charAt(m) - '0' : 0;
int y = n >= 0 ? num2.charAt(n) - '0' : 0;
// 求和
int res = x + y + sum;
// 取余就是单个字符
sb.append(res % 10);
// 此时记录大于0的值
sum = res / 10;
m--;
n--;
}
sb.reverse();
return sb.toString();
}
}

public class Test {
public static void main(String[] args) {
new Solution().addStrings("2", "3"); // 输出: 5
new Solution().addStrings("123", "456"); // 输出: 569
}
}


举报

相关推荐

0 条评论