https://leetcode.com/problems/multiply-strings/
Multiply Strings
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.
It is not a very funny problem that can test you in the interview.
Refer Idea here:
https://leetcode.com/discuss/33951/ac-solution-in-java-with-explanation
Refer Python Code here:
https://leetcode.com/discuss/50707/simple-python-solution-18-lines
Updated 2016-10-31:
Actually this problem can be solved elegantly.
Code
class Solution(object):
def multiply(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
m, n = len(num1), len(num2)
pos = [0] * (m+n)
for i in xrange(m-1, -1, -1):
for j in xrange(n-1, -1, -1):
d1, d2 = int(num1[i]), int(num2[j])
sum = d1 * d2 + pos[i+j+1]
pos[i+j] += sum/10
pos[i+j+1] = sum % 10
res = ''
for p in pos:
if not (not res and not p):
res += str(p)
return res if res else '0'
Idea

Don’t worry about pos[i+j] += sum/10 (line 15) will become greater than 10. It will ultimately be taken mod when smaller i or j is traversed.
Reference: https://discuss.leetcode.com/topic/30508/easiest-java-solution-with-graph-explanation/2