Multiply Strings

Given two non-negative integersnum1andnum2represented as strings, return the product ofnum1andnum2

题意:求两个字符串数字的相乘,输入的两个数和返回的数都是以字符串格式储存的,这样做的原因可能是这样可以计算超大数相乘,可以不受int或long的数值范围的约束

代码

class Solution {
    public String multiply(String num1, String num2) {
        if(num1.length()==0 || num2.length()==0) return "0";
        int len1 = num1.length();
        int len2 = num2.length();
        int [] result = new int [len1+len2];
        for(int i = len1-1; i>=0; i--){
            for(int j = len2-1; j>=0;j--){
                int mul = (num1.charAt(i)-'0')*(num2.charAt(j)-'0');
                int posLow = i+j+1;
                int posHigh = i+j;
                mul = mul + result[posLow];
                result[posLow] = mul %10;
                result[posHigh] = result[posHigh] + mul/10;
            }
        }
        StringBuilder sb = new StringBuilder();
        for(int res: result){
            if(sb.length()!=0 || res!=0) sb.append(res);
        }

        return (sb.length()==0)? "0" : sb.toString();

    }
}

results matching ""

    No results matching ""