题解 | 穷举#24点运算#

24点运算

http://www.nowcoder.com/practice/7e124483271e4c979a82eb2956544f9d

import itertools
def change_str(str_cal):
    str_cal = str_cal.replace('11','J').replace('12','Q').replace('13','K').replace('1','A')
    return str_cal
def check_str():
    num =[]
    cal = ['+','-','*','/']
    for t in s:
        if t == 'JOKER' or t == 'joker':
            return "ERROR"
        elif t in lst1:
            num.append(lst2[lst1.index(t)])
        else:
            num.append(t)
    cal_comb = list(itertools.product(cal,repeat=3))
    num_comb = list(itertools.permutations(num,4))
    cn_comb = []
    for m in num_comb:
        for n in cal_comb:
            new_cal = m[0]
            str_cal = m[0]
            for i in range(3):
                new_cal = str(int(eval(new_cal+n[i]+m[i+1])))
                str_cal += n[i] + m[i+1]
            if new_cal == '24':
                return change_str(str_cal)
    else:
        return "NONE"


while True:
    try:
        s= input().split(" ")
        lst1 = "JQKA"
        lst2 = ['11','12','13','1']
        print(check_str())
    except:
        break
全部评论

相关推荐

白火同学:先说结论,对于一份实习简历来说,整体还是挺不错的,技术深度和广度都到位,找到一份中小厂的实习没啥问题。 再说说能优化的点吧。 1、量化结果,项目中很多工作量化一下结果给面试官的感受会更直观一些,也能体现你对应用该项技术的理解(在众多技术为什么要用它,运行性能或者说开发效率往往是一大考虑指标;而不是说大家做这种功能都用它,所以我用它)。 2、突出亮点,项目中可以从“工作职责”择一些“个人亮点”另写一块,优先去写开发过程中遇到的xx问题,使用xx技术达到xx效果,针对性去写一些疑杂难的功能,能带出你个人思考和解决的过程。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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