LeetCode 273 Integer to English Words

LeetCode 273 Integer to English Words Problem

Download Code
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.py

List of all Integer to English Words problems

Leetcode 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.