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 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短