当前位置: 代码迷 >> 综合 >> Leetcode 273. Integer to English Words (python)
  详细解决方案

Leetcode 273. Integer to English Words (python)

热度:23   发布时间:2023-11-26 07:00:01.0

Leetcode 273. Integer to English Words

  • 题目
  • 解法:

题目

在这里插入图片描述

解法:

建议直接看lc官网:https://leetcode.com/problems/integer-to-english-words/

class Solution:def numberToWords(self, num: int) -> str:# 2^31 = 2 147 483 648def one(num):switcher = {
    1: 'One',2: 'Two',3: 'Three',4: 'Four',5: 'Five',6: 'Six',7: 'Seven',8: 'Eight',9: 'Nine'}return switcher.get(num)def two_less_20(num):switcher = {
    10: 'Ten',11: 'Eleven',12: 'Twelve',13: 'Thirteen',14: 'Fourteen',15: 'Fifteen',16: 'Sixteen',17: 'Seventeen',18: 'Eighteen',19: 'Nineteen'}return switcher.get(num)def ten(num):switcher = {
    2: 'Twenty',3: 'Thirty',4: 'Forty',5: 'Fifty',6: 'Sixty',7: 'Seventy',8: 'Eighty',9: 'Ninety'}return switcher.get(num)def two(num):if not num:return ''if num<10:return one(num)if num<20:return two_less_20(num)else:tenner = num//10rest = num - tenner*10return ten(tenner)+ ' ' +one(rest) if rest else ten(tenner)def three(num):hundred = num//100rest = num - hundred*100if hundred and rest:return one(hundred) + ' Hundred ' + two(rest)elif not hundred and rest:return two(rest)elif hundred and not rest:return one(hundred) + ' Hundred'if not num:return 'Zero'billon = num//1000000000millon = (num-billon*1000000000)//1000000thousand = (num-billon*1000000000-millon*1000000)//1000rest = num-billon*1000000000-millon*1000000-thousand*1000result = ''if billon:result += three(billon) + ' Billion'if millon:result += ' ' if result else ''result += three(millon) + ' Million'if thousand:result += ' ' if result else ''result += three(thousand) + ' Thousand'if rest:result += ' ' if result else ''result += three(rest)return result
  相关解决方案