前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【每日一题】43. Multiply Strings

【每日一题】43. Multiply Strings

作者头像
公众号-不为谁写的歌
发布2020-09-02 16:29:36
3040
发布2020-09-02 16:29:36
举报
文章被收录于专栏:桃花源记

题目描述

Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2, also represented as a string.

Example 1:

代码语言:javascript
复制
Input: num1 = "2", num2 = "3"
Output: "6"

Example 2:

代码语言:javascript
复制
Input: num1 = "123", num2 = "456"
Output: "56088"

Note:

  1. The length of both num1 and num2 is < 110.
  2. Both num1 and num2 contain only digits 0-9.
  3. Both num1 and num2 do not contain any leading zero, except the number 0 itself.
  4. You must not use any built-in BigInteger library or convert the inputs to integer directly.

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

num1 和 num2 的长度小于110。 num1 和 num2 只包含数字 0-9。 num1 和 num2 均不以零开头,除非是数字 0 本身。 不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。

题解

由于题目要求:不能将字符串转化成大整数来处理。所以需要换一种方法,这里打算模仿2个整数的计算过程,直接计算结果。

模仿自己手算整数的计算:把两个数末尾对齐,固定一个数字a,从末尾开始,依次用数字与另个整数b的末尾开始相乘,计算进位数、余数;整数b遍历完成后,将指向a中的数字向前移动一位,反复计算,直到数字a遍历完成。

值得注意的是:需要先设定一个字符串用户存储临时的结果。所以,我们要明确字符串的长度,设整数1、整数2长度分别为m,n;那么乘法结果的最大长度为m+n。两个数字都遍历完成后,对临时结果从头到尾进行遍历,舍去其中为‘0’的字符。

完整代码:

代码语言:javascript
复制
class Solution {
public:
    string multiply(string num1, string num2) {
        int size1 = num1.size(), size2 = num2.size();
        string res(size1+size2, '0');
        
        for (int i=size1-1; i>=0; --i){
            for (int j=size2-1; j>=0; --j){
                int temp = (num1[i] - '0') * (num2[j] - '0') + (res[i+j+1] - '0');
                res[i+j] += temp / 10 ;
                res[i+j+1] = temp % 10 + '0';
            }
        }
        
        for (int i=0; i< size1+size2; i++){
            if (res[i] != '0')
                return res.substr(i);
        }
        return "0";
    }
};

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 题解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档