English number words
题目
On financial documents, like cheques, numbers must sometimes be written in full words. Example: 175 must be written as one-seven-five. Write a predicate full_words/1 to print (non-negative) integer numbers in full words.
解题
简单的一对一映射。先将正整数分成由一位正整数组成的列表。然后,将列表中的一位正整数映射成英文单词。最后,以-
为分隔符将英文单词拼接成一个字符串。
代码实现
def full_word(n):
nToWords = {
'1': 'one',
'2': 'two',
'3': 'three',
'4': 'four',
'5': 'five',
'6': 'six',
'7': 'seven',
'8': 'eight',
'9': 'nine',
'0': 'zero'
}
words = [nToWords[num] for num in str(n)]
return '-'.join(words)