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; } };
相关推荐
基本计算器leetcode Strings-3 Problem1 Integer to English Words () Problem2 Basic Calculator || ()
leetcode 字符串-1 问题1 自定义排序字符串 () 问题2 无重复字符的最长子串()
刷LeetCode刷LeetCode刷LeetCode刷LeetCode刷LeetCode
大佬的leetcode刷题笔记(c++版本)
LeetCode 101_C++_算法_leetcode_leetcode101_leetcode101.zip
vs code LeetCode 插件
LeetCode 101_C++_算法_leetcode_leetcode101_leetcode101_源码.zip
leetcode中文版
100个leetCode详细解答
LeetCode 刷题汇总1
LeetCode 选讲1
terminal-leetcode, 终端Leetcode是基于终端的Leetcode网站查看器 终端 leetcode终端leetcode是基于终端的leetcode网站查看器。本项目是由 RTV 激发的。 我最近正在学习本地化的反应,以实践我的新知识,并根据这个...
leetcode刷题, 直接用leetcode的分类方式.
该分类为结合《算法导论》的内容,给出Leetcode题目分类。题目主要集中在Leetcode的前400题中,也包括有后面的一些经典值得刷的题。该题目分类按照算法和数据结构排版,即可供单独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几乎所有题目(大约134题)的分类以及难度指示,是刷leetcode的必备良品。现在leetcode总的题目数已经达到150题,所以有部分题目没有包含在这个文档中,但是——足够了。po主刷leetcode的时候...
leetcode高频面试笔试题150+道,亲身总结。
LeetCode 刷题笔记
(C++)LeetCode刷题题解答案
LeetCode面试笔试题