(Medium #43) Multiply Strings
Problem
Given two non-negative integers num1
and num2
represented as strings, return the product of num1
and num2
, also represented as a string.
Example 1:
Input: num1 = "2", num2 = "3"
Output: "6"
Example 2:
Input: num1 = "123", num2 = "456"
Output: "56088"
Note:
- The length of both
num1
and num2
is < 110.
- Both
num1
and num2
contain only digits 0-9
.
- Both
num1
and num2
do not contain any leading zero, except the number 0 itself.
- You must not use any built-in BigInteger library or convert the inputs to integer directly.
Given two non-negative integers
num1
and num2
represented as strings, return the product of num1
and num2
, also represented as a string.
Example 1:
Input: num1 = "2", num2 = "3" Output: "6"
Example 2:
Input: num1 = "123", num2 = "456" Output: "56088"
Note:
- The length of both
num1
andnum2
is < 110. - Both
num1
andnum2
contain only digits0-9
. - Both
num1
andnum2
do not contain any leading zero, except the number 0 itself. - You must not use any built-in BigInteger library or convert the inputs to integer directly.
My solution
class Solution:
def multiply(self, num1: str, num2: str) -> str:
sum = 0
cand = []
cand_pos1 = 1
for i in range(len(num1)-1, -1, -1):
cand_pos2 = cand_pos1
for j in range(len(num2)-1, -1, -1):
sum += int(num1[i])*int(num2[j])*cand_pos2
cand_pos2 *= 10
cand_pos1 *= 10
return str(sum)
Runtime: 144ms, Memory: 13.9MB
def multiply(self, num1: str, num2: str) -> str:
sum = 0
cand = []
cand_pos1 = 1
for i in range(len(num1)-1, -1, -1):
cand_pos2 = cand_pos1
for j in range(len(num2)-1, -1, -1):
sum += int(num1[i])*int(num2[j])*cand_pos2
cand_pos2 *= 10
cand_pos1 *= 10
return str(sum)
댓글
댓글 쓰기