题目
415. 字符串相加【简单】
题解
手算竖式加法的一个模拟,需要注意一下细节,比如nums1 和nums2 加完之后还有进位的情况
记一下int和char转换的方法,+'0' 或-'0' 即可
class Solution {
public String addStrings(String num1, String num2) {
StringBuffer res=new StringBuffer();
int i=num1.length()-1,j=num2.length()-1,flag=0,sum;
while(i>=0||j>=0){
if(i<0)
sum=num2.charAt(j--)-'0'+flag;
else if(j<0)
sum=num1.charAt(i--)-'0'+flag;
else
sum=num1.charAt(i--)-'0'+num2.charAt(j--)-'0'+flag;
flag=sum/10;
res.append(sum%10);
}
if(flag==1)
res.append(1);
return res.reverse().toString();
}
}
时间复杂度:
O
(
m
a
x
(
n
1
,
n
2
)
)
O(max(n1,n2))
O(max(n1,n2))
空间复杂度:
O
(
n
)
O(n)
O(n),StringBuffer的存储空间
|