Leetcode—43.字符串相乘【中等】

2023每日刷题(六十八)

Leetcode—43.字符串相乘

Leetcode—43.字符串相乘【中等】_第1张图片

算法思想

Leetcode—43.字符串相乘【中等】_第2张图片

实现代码

class Solution {
public:
    string multiply(string num1, string num2) {
        int len1 = num1.size(), len2 = num2.size();
        string ans;
        int end1 = len1 - 1, end2 = len2 - 1;
        int arr[len1 + len2];
        memset(arr, 0, sizeof(arr));
        for(int i = end1; i >= 0; i--) {
            for(int j = end2; j >= 0; j--) {
                int multi = (num1[i] - '0') * (num2[j] - '0');
                multi += arr[i + j + 1];
                arr[i + j] += multi / 10;
                arr[i + j + 1] = multi % 10;
            }
        }
        int i = 0;
        while(i < len1 + len2 && arr[i] == 0) {
            i++;
        }
        if(i == len1 + len2) {
            return "0";
        }
        while(i < len1 + len2) {
            string s = to_string(arr[i]);
            ans += s;
            i++;
        }
        return ans;
    }
};

运行结果

Leetcode—43.字符串相乘【中等】_第3张图片

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

你可能感兴趣的:(LeetCode刷题,leetcode,算法,职场和发展,经验分享,c++)