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 送给学长毕业祝福语简短