题解 | #学英语#

学英语

https://www.nowcoder.com/practice/1364723563ab43c99f3d38b5abef83bc

n1 = ["one",'two','three',"four",'five','six','seven','eight','nine','ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen',"nineteen"]
n2 = ["twenty",'thirty','forty','fifty','sixty','seventy','eighty','ninety']
n3 = ["billion",'million','thousand']
c = []
def sanwei(m):
    if len(m)<=2 and int(m)<20:
        c.append(n1[int(m)-1])
    elif len(m)==2 and 20<=int(m):
        c.append(n2[int(m[0])-2])
        if m[1] !="0":
            c.append(n1[int(m[1])-1])
    elif len(m) ==3:
        c.append(n1[int(m[0])-1])
        if int(m[0]) !=0:
            c.append("hundred")
            if m[1]!="0" or m[2]!="0":
                c.append("and")
        else:
            c.pop()
        if m[1]!="0":
            if int(m[1:]) < 20:
                c.append(n1[int(m[1:])-1])
            elif 20 <= int(m[1:]):
                c.append(n2[int(m[1]) - 2])
                if m[2] != "0":
                    c.append(n1[int(m[2]) - 1])
        elif m[2]!="0":
            c.append(n1[int(m[2])-1])
    return  c



d=[]
b = input()[::-1]
for i in range(0,len(b),3):
    d.append(b[i:i+3][::-1])
d = d[::-1]
a = d
if len(a)==4:
    for i in range(4):
        sanwei(a[i])
        if i<=2:
            c.append(n3[i])
elif len(a)==3:
    for i in range(3):
        sanwei(a[i])
        if i<=1:
            c.append(n3[i+1])
elif len(a)==2:
    for i in range(2):
        sanwei(a[i])
        if i<=0:
            c.append(n3[i+2])
elif len(a)==1:
    sanwei(a[0])
print(" ".join(c))

纯小白解法,根据例子,一个个找漏洞解的。

全部评论

相关推荐

09-22 15:45
门头沟学院 Java
谁给娃offer我给...:我也遇到了,我说只要我通过面试我就去,实际上我根本就不会去😁
点赞 评论 收藏
分享
自来熟的放鸽子能手面...:这个不一定,找hr跟进一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务