相关标签
一、题目要求
二、题解和代码实现
1.题解
2.代码实现
代码如下(示例):
class Solution {
public String addStrings(String num1, String num2) {
StringBuilder res = new StringBuilder();
int l1 = num1.length() - 1;
int l2 = num2.length() - 1;
int add=0;//记录进位后的值
while (l1 >=0||l2 >=0){//从末尾开始遍历
int x = l1 <0 ? 0 : num1.charAt(l1)-'0';//获取每个位置上的值,是转换成int的值
int y = l2 <0 ? 0 : num2.charAt(l2)-'0';//获取每个位置上的值,是转换成int的值
res.append ((x+y+add) %10);//两个字符串同个位置上的数和进位数相加, 获取尾部的值,
add = (x+y+add)/10;//假如x+y+add有进位,保留进位到add,让下一轮循环加上进位的值
l1--;//移位
l2--;//移位
}
if(add!=0){//如果进位上还有值
res.append(add);//加入到字符串中
}
//翻转
return res.reverse().toString();
}
}