class Solution(object):
def numberToWords(self, num):
# https://leetcode.com/problems/integer-to-english-words/discuss/70632/Recursive-Python
to19 = 'One Two Three Four Five Six Seven Eight Nine Ten Eleven Twelve ' \
'Thirteen Fourteen Fifteen Sixteen Seventeen Eighteen Nineteen'.split()
tens = 'Twenty Thirty Forty Fifty Sixty Seventy Eighty Ninety'.split()
def words(n):
if n < 20:
return to19[n - 1:n]
if n < 100:
return [tens[n / 10 - 2]] + words(n % 10)
if n < 1000:
return [to19[n / 100 - 1]] + ['Hundred'] + words(n % 100)
for p, w in enumerate(('Thousand', 'Million', 'Billion'), 1):
if n < 1000 ** (p + 1):
return words(n / 1000 ** p) + [w] + words(n % 1000 ** p)
return ' '.join(words(num)) or 'Zero'
Download Integer to English Words.pyLeetcode 273 Integer to English Words problem solution in python3 with explanation. This is the best place to expand your knowledge and get prepared for your next interview.
Feedback is the most important part of any website.
If you have any query, suggestion or feedback, Please feel free to contact us.