滴滴笔试 算式转移

心态崩了,第一题想了好久,只a了36,大佬们知道边界条件吗?我感觉我写的没啥问题,虽然存在超参数,但是调高了也没用啊。

n = int(input())
strr =input()
str_list =strr.split()
ooo = eval(strr)
#print(strr)
def list2str(aa):
    bb=''
    for i in aa:
        bb+=i
        bb+=' '
    return bb
for j in range(50):
    for i in range(len(str_list)-2):
        if str_list[i] not in ['+', '-', '*', '/']:
            if int(str_list[i]) > int(str_list[i + 2]):
                list_temp = str_list.copy()
                temp = list_temp[i]
                list_temp[i] = list_temp[i + 2]
                list_temp[i + 2] = temp
                if eval(list2str(list_temp)) == ooo:
                    str_list = list_temp
print(list2str(str_list))
#滴滴##笔试题目##秋招#
全部评论
第一题可看AC代码:https://www.nowcoder.com/discuss/235697
点赞 回复
分享
发布于 2019-08-27 21:34
这个你是把每个符号左右两边的数都进行大小比较了吗? + * 等级不一样,3 + 2 + 1 + -4 * -5 + 1 这里的 -4 和 1 不能换啊
点赞 回复
分享
发布于 2019-08-27 21:31
联易融
校招火热招聘中
官网直投
边界我感觉是*前面的运算如果是/那么被除数是不能交换的,如果不是/,是可以交换的
点赞 回复
分享
发布于 2019-08-31 13:49

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务