您的位置:首页 > 其它

leetcode-43. Multiply Strings

2016-11-14 14:20 302 查看

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode