43. Multiply Strings
程序员文章站
2022-03-23 13:13:16
...
原题链接:https://leetcode.com/problems/multiply-strings/
突然发现外国友人的格子乘法做这道题更简单。
每一步先算较高位,再更新低位,省去了保存进位的麻烦。
对于两个String而言,从后向前,依次更新 倒数第二位.倒数第一位 .......然后倒数第三位.倒数第二位 .......
因为本次更新较高位时已经把较低位的值算上,所以进位直接可以计算,无须保存。
AC 13ms:
class Solution {
public String multiply(String num1, String num2) {
if(num1.length()==0||num2.length()==0)
return "";
int[] num=new int[num1.length()+num2.length()];
for(int i=num1.length()-1;i>=0;i--)
for(int j=num2.length()-1;j>=0;j--){
int temp=(num1.charAt(i)-'0')*(num2.charAt(j)-'0');
num[i+j]+=(num[i+j+1]+temp)/10;
num[i+j+1]=(num[i+j+1]+temp)%10;
}
StringBuilder sb=new StringBuilder();
for(int i : num){
if(sb.length()==0&&i==0)
continue;
sb.append(i);
}
return sb.length()==0?"0":sb.toString();
}
}
下一篇: Web应用程序1.3——用户输入数据
推荐阅读
-
【TOJ 2406】Power Strings(kmp找最多重复子串)
-
go语言中strings包的用法汇总
-
Go语言中strings和strconv包示例代码详解
-
Python 关于数组矩阵变换函数numpy.nonzero(),numpy.multiply()用法
-
POJ2406 Power Strings(KMP)
-
python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别详解
-
mongodb exception: $concat only supports strings, not NumberInt32解决办法
-
Power Strings (循环节问题)
-
leetcode[43] Multiply Strings
-
[3]43. Multiply Strings(Java)