题解 | #人民币转换#

人民币转换

https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b

def fun():
    def print_epoch(four_num, big_unit):
        # 每四位数字化为一个单位
        unit, s, four_num = ['仟', '佰', '拾'], '', four_num.rjust(4, '0')
        if int(four_num[0]) > 0:
            s += num_map_word[int(four_num[0])] + unit[0]
            s += num_map_word[int(four_num[1])] + (unit[1] if int(four_num[1]) != 0 else '')
            s += num_map_word[int(four_num[2])] + (unit[2] if int(four_num[2]) != 0 else '')
            s += num_map_word[int(four_num[3])] if int(four_num[3]) != 0 else ''
        elif int(four_num[1]) > 0:
            s += num_map_word[int(four_num[1])] + unit[1]
            s += num_map_word[int(four_num[2])] + (unit[2] if int(four_num[2]) != 0 else '')
            s += num_map_word[int(four_num[3])] if int(four_num[3]) != 0 else ''
        elif int(four_num[2]) > 0:
            s += (num_map_word[int(four_num[2])] if int(four_num[2]) != 1 else '') + unit[2]
            s += num_map_word[int(four_num[3])]
        else:
            s += num_map_word[int(four_num[3])] if int(four_num[3]) != 0 else ''
        s = (s + big_unit).replace('零零', '零').replace('零壹拾', '零拾').replace('仟零万', '仟万').replace('万万', '亿')
        return s

    def print_two(s):
        res = f'{num_map_word[int(s[0])]}角{num_map_word[int(s[1])]}分'
        res = res.replace('零角零分', '整').replace('零角', '').replace('零分', '')
        return res
    # 数字对应中文的列表
    num_map_word = '零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾'.split('、')
    left, right = input().split('.')
    # 小数点左边的
    left_list = [left[max(i - 4, 0):i] for i in range(len(left), 0, -4)][::-1]
    ret = [print_epoch(i, '万' * idx) for idx, i in enumerate(left_list[::-1])]
    ret = ['人民币'] + ret[::-1] + ['元']
    # 小数点右边的
    ret.append(print_two(right))
    # 最终合并的结果
    ret_final = ''.join(ret).replace('人民币元', '人民币')
    print(ret_final)


fun()

全部评论

相关推荐

06-20 14:27
中山大学 C++
rt,day3就开始接需求
星际探神:你就想 你是水货他们都没面出来 他们也水 管他呢
点赞 评论 收藏
分享
收到了小米的实习offer,犹豫是否要去。。。
认真搞学习:雷总还当过首富呢,公司不算大厂算独角兽吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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