美文网首页
字符串相乘

字符串相乘

作者: 失眠是真滴难受 | 来源:发表于2020-10-21 14:32 被阅读0次

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

示例:

输入: num1 = "2", num2 = "3"
输出:“6”

思路

按照平时计算乘法的方式:竖式乘法。
num1num2 的每一位都分别相乘,结果保存在数组中,然后把乘积相加。
但是在实际的计算中,可以进行优化,在计算每一位的乘积的时候,把上一位的进位也考虑进去,这样代码更优雅一些。

关键部分

num1[i] * num2[j] 的结果,本位保存在 sumArr[i+j+1],进位保存在 sumArr[i+j], 当计算下一位的时候,把本位的积加上上一位的进位,就能算出当前的本位与进位。重复这一过程,直到两个字符串中每一位都已经相乘过了,数组中保存的就是计算结果。

func multiply(num1 string, num2 string) string {
    if num1 == "0" || num2 == "0" {
        return "0"
    }

    sumArr := make([]int, len(num1) + len(num2))

    for i := len(num2)-1; i >= 0; i -- {
        n2 := int(num2[i] - '0')
        for j := len(num1)-1; j >= 0; j -- {
            n1 := int(num1[j] - '0')
            sum := n2 * n1 + sumArr[i+j+1]
            sumArr[i+j+1] = sum % 10
            sumArr[i+j] += sum / 10
        }
    }

    res := ""
    for k, v := range sumArr {
        if k == 0 && v == 0 {
            continue
        }
        res += string(v + '0')
    }
    return res
}

公众号:没有梦想的阿巧 后台回复 "群聊",一起学习,一起进步

相关文章

  • Python3的字符串使用

    字符串可以相加,相乘

  • 字符串相乘

    题目 Given two non-negative integers num1 and num2 represen...

  • 字符串相乘

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

  • 字符串相乘

    题目描述:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的...

  • 字符串相乘

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

  • 字符串相乘

    字符串相乘   在 Python 语言中,算术运算符的“+”和“*”是可以对字符串进行操作的,如字符串拼接(str...

  • LeetCode:字符串相乘

    字符串相乘 - LeetCode[https://leetcode-cn.com/problems/multipl...

  • python的数据类型——字符串

    生成字符串 Python中可以使用一对单引号''或者双引号""生成字符串。 简单操作 加法: 字符串与数字相乘: ...

  • 字符串 大数相乘

    https://leetcode-cn.com/explore/interview/card/bytedance/...

  • LeetCode 43. 字符串相乘 | Python

    43. 字符串相乘 题目来源:力扣(LeetCode)https://leetcode-cn.com/proble...

网友评论

      本文标题:字符串相乘

      本文链接:https://www.haomeiwen.com/subject/vvtemktx.html