`
cozilla
  • 浏览: 93994 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

[Leetcode] Multiply Strings

 
阅读更多
Multiply StringsMar 12 '124253 / 16074

Given two numbers represented as strings, return multiplication of the numbers as a string.

Note: The numbers can be arbitrarily large and are non-negative.

 

把num reverse一下,这个技巧挺实用,可以拓展到所有的string运算中。

 

class Solution {
public:
    string multiply(string num1, string num2) {

        reverse(num1.begin(), num1.end());
        reverse(num2.begin(), num2.end());
        
        int l1 = num1.size();
        int l2 = num2.size();
        string res(l1 + l2 + 1, '0');
        int carr = 0, t, idx;
        for (int i = 0; i < l1; ++i)
        {
            int n1 = num1[i] - '0';
            carr = 0;
            for (int j = 0; j < l2; ++j)
            {
                t = carr + n1 * (num2[j] - '0') + (res[i + j] - '0');
                carr = t / 10;
                res[i+j] = t % 10 + '0';
            }
            idx = l2;
            while (carr != 0)
            if (carr != 0) {
                t = carr + (res[i+idx] - '0');
                carr = t / 10;
                res[i+idx++] = t % 10 + '0';
            }
        }
        while (!res.empty() && res.back() == '0') res.pop_back();
        if (res.empty()) return "0";
        reverse(res.begin(), res.end());
        return res;
    }
};

 

分享到:
评论

相关推荐

    java-leetcode题解之Multiply Strings.java

    在LeetCode平台上,针对字符串和数学计算的题目中,Multiply Strings(字符串乘法)是一个常见的编程挑战。在这个问题中,需要实现一个函数,该函数接收两个仅包含数字字符的字符串,返回它们的乘积,同样也是一个...

    js-leetcode题解之43-multiply-strings.js

    本文将详细介绍LeetCode上编号为43的算法题目,名为“Multiply Strings”,即字符串乘法问题,并提供相应的JavaScript语言实现的题解。 43号问题“Multiply Strings”要求我们实现一个字符串乘法的函数,该函数接受...

    C语言-leetcode题解之43-multiply-strings.c

    在C语言的世界里,文件"C语言-leetcode题解之43-multiply-strings.c"指明了它所关注的内容:解决一个特定的编程题目,即leetcode平台上的第43题,任务是编写一个函数来实现两个大数的字符串形式乘法。C语言的复杂性...

    LeetCode最全代码

    # [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...

    leetcodepython001-LeetCode:力码

    Multiply Strings 066 Add Binary Linked-list 002 Add Two Numbers Stack 020 Valid Parenthesis Hash Table 001 TwoSum Reference 完整的学习流程 How to be a softwair engineer: 其他人详解 Python的各式演算法

    _leetcode-python.pdf

    - Multiply Strings: 给定两个非负整数字符串形式的数,要求进行乘法运算。 - Wildcard Matching: 实现支持'?'和'*'的通配符匹配。 - Jump Game / Jump Game II: 第一个问题要求判断是否能到达数组的最后一个位置,...

    leetcode卡-LeetCode:LeetCode题解

    leetcode卡 LeetCode LeetCode题解 目录 字符串问题 ID Title C++ 难度 备注 0008 String to Integer(atoi) :star: :star: :star: ...Multiply Strings :star: :star: 大数相乘 0044 Wild Card Matchi

    Leetcode部分试题解析

    22. **Multiply Strings**:两个字符串表示的数相乘。同样模拟笔算乘法,使用二维数组存储中间结果。 23. **Rotate Array**:将数组顺时针旋转指定步数。可以先反转整个数组,再反转前半部分和后半部分。 24. **...

    C语言入门-leetcode练习之第43题字符串相乘.zip

    第43题:字符串相乘(Multiply Strings) 题目描述: 给定两个非负整数num1和num2,它们的长度相同,用字符串形式表示。你的任务是计算它们的乘积,并返回结果字符串。例如,"2" 和 "3" 相乘等于 "6"。 解决方案:...

    python-leetcode面试题解之第43题字符串相乘-题解.zip

    在本压缩包中,主题聚焦于使用Python解决LeetCode第43题——“字符串相乘”(Multiply Strings)。这是一道常见的编程面试题,旨在测试应聘者的字符串处理和算法设计能力。下面将详细探讨该题目的背景、解题思路、...

    基于LeetCode的C++编程练习与解题设计源码分享

    0043-multiply-strings-字符串相乘,这个文件解决了一个算术问题——大数乘法。当数字无法用标准的整型变量表示时,算法必须找到一种处理大数乘法的方式。 整体来看,这些文件覆盖了数据结构、图论、算法设计、字符...

    Microsoft - 微软面试题库.pdf

    - “Multiply Strings(字符串相乘)”是数学和字符串处理结合的题目。 3. **题目解决情况**: - 文件中提到用户已解决149/234道题目,这表示用户在解题过程中拥有一定的实践经验和对算法题目的熟悉度。 4. **...

Global site tag (gtag.js) - Google Analytics