273. Integer to English Words
# python solution 1
belowTwenty = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen", "Twenty"]
belowHundred = ["", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"]
def convert(num: int):
if (num < 20):
result = belowTwenty[num];
elif (num < 100):
result = belowHundred[num//10]
result = result if (num%10 == 0) else (result + " " + convert(num%10))
elif (num < 1000):
result = convert(num//100) + " Hundred"
result = result if (num%100 == 0) else (result + " " + convert(num%100))
elif (num < 1000000):
result = convert(num//1000) + " Thousand"
result = result if (num%1000 == 0) else (result + " " + convert(num%1000))
elif (num < 1000000000):
result = convert(num//1000000) + " Million"
result = result if num%1000000 == 0 else result + " " + convert(num%1000000)
elif (num >= 1000000000):
result = convert(num//1000000000) + " Billion"
result = result if num%1000000000 == 0 else result + " " + convert(num%1000000000)
return result
class Solution:
def numberToWords(self, num: int) -> str:
if num == 0:
return "Zero"
else:
return convert(num).strip()
Last updated
Was this helpful?