首页 > 其他 > 详细

[Leetcode]-- Multiply Strins

时间:2014-01-26 08:42:49      阅读:445      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
public class Solution {
    public String multiply(String num1, String num2) {
        int l1 = num1.length();
        int l2 = num2.length();
        
        int[] num = new int[l1 + l2 + 1];
        for(int i = 0; i <= l2 - 1; i ++){
            int carry = 0;
            int a = num2.charAt(l2 - 1 - i) - ‘0‘;
            for(int j = 0; j <= l1 - 1; j ++){
                int b = num1.charAt(l1 - 1 - j) - ‘0‘;
                num[i + j] += a * b + carry;
                carry = num[i + j] / 10;
                num[i + j] = num[i + j] % 10;
            }
            // 123*9 carry add to the left side of digit ‘1‘
            num[i + l1] = carry;
        }
        
        // 100 * 1 = 00100 把00100 转换为 100
        int i  = num.length -1;
        while( i > 0 && num[i] == 0){
            i--;
        }
        
        StringBuilder sb = new StringBuilder();
        while(i >= 0){
            sb.append(num[i--]);
        }
        return sb.toString();

    }
}
bubuko.com,布布扣

[Leetcode]-- Multiply Strins

原文:http://www.cnblogs.com/RazerLu/p/3533645.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!