leetcode 43.字符串相乘

这篇具有很好参考价值的文章主要介绍了leetcode 43.字符串相乘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

⭐️ 题目描述

leetcode 43.字符串相乘,刷题,leetcode,刷题,string


🌟 leetcode链接:字符串相乘

思路:
leetcode 43.字符串相乘,刷题,leetcode,刷题,string


代码:文章来源地址https://www.toymoban.com/news/detail-698428.html

class Solution {
public:
    string multiply(string num1, string num2) {
        
        if (num1 == "0" || num2 == "0") {
            return "0";
        }
        /*
            0  1  2 下标
            1  2  3
           *4  5  6
            6  12 18
          5 10 15
      0 4 8 12
      0 4 13 28 27 18   从后向前依次进一位
      0 5  6  0  8  8        
        */

        // 999 * 999 = 998,001 相乘计算 3位数 * 3位数 = 6位数 乘出来的结果是两个数的位数最大
        // 是两个位数长度相加 3 + 3

        vector<int> v(num1.size() + num2.size());   // 行数组

        for (int i = num1.size() - 1; i >= 0; i--) {
            for (int j = num2.size() - 1; j >= 0; j--) {
                // i + j + 1 下标位置是相乘后存在对应的下标位置
                v[i + j + 1] += (num1[i] - '0') * (num2[j] - '0');
            }
        }

        // 从后向前依次进一位
        for (int i = v.size() - 1; i > 0; i--) {
            v[i - 1] += v[i] / 10;
            v[i] %= 10;
        }

        string ans;
        int start_index = v.front() == 0 ? 1 : 0;
        while (start_index < v.size()) {
            ans += v[start_index] + '0';
            start_index++;
        }

        return ans;
    }
};

到了这里,关于leetcode 43.字符串相乘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【刷题】 leetcode 面试题 01.06 字符串压缩

    来看题目: 根据题目所说,我们需要完成函数书写,保证返回一个相对较小的字符数组: 如果压缩后比原字符串小,则返回压缩字符串,否则返回原字符串。 本思路一步一步操作,逐步完成任务 先确认字符串长度是否小于 2 ,小于直接返回( 因为压缩字符串长度至少是2

    2024年01月24日
    浏览(55)
  • 【leetcode 力扣刷题】字符串翻转合集(全部反转///部分反转)

    题目链接:344. 反转字符串 题目内容: 题目中重点强调了必须 原地修改 输入数组,即不能新建一个数组来完成字符串的反转。我们注意到: 原来下标为0的,反转后是size - 1【原来下标是size - 1的,反转后是0】; 原来下标是1的,反转后是size - 2【原来下标是size -2的,反转后

    2024年02月11日
    浏览(46)
  • 【leetcode 力扣刷题】字符串匹配之经典的KMP!!!

    以下是能用KMP求解的算法题,KMP是用于字符串匹配的经典算法【至今没学懂………啊啊啊】 题目链接:28. 找出字符串中第一个匹配项的下标 题目内容: 题意还是很好理解的,要在字符串haystack中查找一个完整的needle,即字符串匹配。 暴力求解就是用 两层循环 :haystack从第

    2024年02月09日
    浏览(42)
  • 【每日挠头算法(4)】字符串相加|字符串相乘

    点我直达~ 1.将两个字符串从右往左开始进行相加,使用一个变量 ans 表示进位,如果两个字符串的个位加法和大于10,那么让进位+1,个位和再%10,然后将结果存入到新的字符串 strRet 中 2.两个字符串的十位和十位继续相加,并且需要加上个位的进位 ans ,步骤同1 3.这样不断相

    2024年02月09日
    浏览(57)
  • LeetCode 1048. Longest String Chain【记忆化搜索,动态规划,哈希表,字符串】中等

    本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,

    2024年02月05日
    浏览(45)
  • LeetCode 833. Find And Replace in String【字符串,哈希表,模拟】1460

    本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,

    2024年02月12日
    浏览(44)
  • LeetCode 2337. Move Pieces to Obtain a String【字符串,双指针】1693

    本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,

    2024年02月12日
    浏览(39)
  • 如何高效解决“字符串相乘“问题?

    🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 金句分享: ✨你要狠下心来去努力,努力变成一个很厉害的人.✨ 本题牛牛写了很久,起初对每次相乘的结果就进位处理了,最后还需要考虑 错位相

    2024年02月12日
    浏览(38)
  • LeetCode 2496. Maximum Value of a String in an Array【字符串,数组】简单

    本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,

    2024年02月11日
    浏览(60)
  • 算法刷题-字符串-左旋转字符串

    反转个字符串还有这么多用处? 力扣题目链接 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串\\\"abcdefg\\\"和数字2,该函数将返回左旋转两位得到的结果\\\"cdefgab\\\"。 示例 1: 输入: s = “abcde

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包