Python中英语单词的整数
为了解决这个问题,我们将遵循以下步骤-
定义一些列表,例如less_than_20,它将保存从1到19的所有单词
另一个数组,例如数十个,可容纳数十个,二十个,三十个,以此类推,最多可容纳九十个
数千个数组,可容纳数千,百万和十亿个
定义一个名为的函数helper(),这将花费n
如果n为0,则返回空白字符串
否则,当n<20时,返回less_than_20[n]+空白
否则,当n<100时,返回tens[n/10]+空格+helper(nmod10)
否则返回less_than_20[n/100]+“一百”+助手(nmod100)
在主要方法中,执行以下操作
如果num为0,则返回“零”
ans:=空字符串,i:=0
而num>0
ans:=helper(nummod1000)+千[i]+空格+ans
num:=num/1000
如果nummod1000不为0,则
返回ans
示例
让我们看下面的实现以更好地理解-
class Solution(object):
less_than_20 = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen",
"Nineteen"]
tens = ["","Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"]
thousands = ["", "Thousand", "Million", "Billion"]
def numberToWords(self, num):
if num == 0:
return "Zero"
ans = ""
i = 0
while num > 0:
if num % 1000 != 0:
ans = self.helper(num % 1000) + Solution.thousands[i] + " " + ans
i += 1
num //= 1000
return ans.strip()
def helper(self, n):
if n == 0:
return ""
elif n < 20:
return Solution.less_than_20[n] + " "
elif n < 100:
return Solution.tens[n//10] + " " + self.helper(n % 10)
else:
return Solution.less_than_20[n // 100] + " Hundred " + self.helper(n % 100)
ob = Solution()print(ob.numberToWords(512))
print(ob.numberToWords(7835271))输入值
512 7835271
输出结果
Five Hundred Twelve Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语