leetcode-43. Multiply Strings
实现原理的话图解
简单的说就是根据相乘位置的坐标来计算结果。因为这个只是两个数相乘所以每次相乘只会影响两个位。知道这样的原理只要用类似的加法的形式实现就好
public class Solution {
public String multiply(String num1, String num2) {
int[] sum = 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 subsum = (num1.charAt(i)-'0') * (num2.charAt(j)-'0');
subsum += sum[i+j+1];
sum[i+j+1] = subsum%10;
sum[i+j] += subsum/10;
}
String ret = "";
for(int i : sum)
ret = ret+i;
while(ret.length()>1 && ret.charAt(0)=='0')ret = ret.substring(1);
return ret.length()==0 ? "0":ret;
}
}