#中国电信##校招笔试#求大佬看看我今天笔试第二题的代码,为啥自测通过了但是提交之后用例一个没过?
def iftrue(a, c):
    num1 = 0
    num2 = 0
    num3 = 0
    for i in range(1, a ):
        num1 = int(i)
        for j in c:
            num2 = num1 + int(j)
            for k in c:
                num3 = num2 + int(k)
                if int(num1) + int(num2) + int(num3) == a and num1<25 and num2<25 and num3<25:
                    return change(num1, num2, num3)
                    break
    return "NO"

def change(num1, num2, num3):
    return chr(num1 + 96) + chr(num2 + 96) + chr(num3 + 96)

n = int(input())
str = [0] * n
for i in range(n):
    a, b = map(int, input().split())
    c = input().split()
    str[i] =iftrue(a, c)
for i in str:
    print(i)
全部评论
是差的绝对值,还要往前看。比如差值数组只有2,目标是5,aca是可以的。
1 回复 分享
发布于 09-27 11:11 北京
num1<25 and num2<25 and num3<25 这里不应该是<27? 还有前面说的问题,没考虑反向的
点赞 回复 分享
发布于 09-27 11:18 浙江

相关推荐

非计算机专业,考计算机类的卷子。行测挺简单;专业知识跟编程我觉得难,因为我不是计算机专业的。专业知识有考机器学习,也有考计科的东西;编程第一题简单,第二题超时20%通过,第三题什么判断括号不会。接着学习吧,顺便把自己编程第二题的错误答案发一下抛砖引玉。import&nbsp;sysCHAR_MAP&nbsp;=&nbsp;{key:&nbsp;value&nbsp;for&nbsp;value,&nbsp;key&nbsp;in&nbsp;enumerate([&quot;a&quot;,&nbsp;&quot;b&quot;,&nbsp;&quot;c&quot;,&nbsp;&quot;d&quot;,&nbsp;&quot;e&quot;,&nbsp;&quot;f&quot;,&nbsp;&quot;g&quot;,&nbsp;&quot;h&quot;,&quot;i&quot;,&nbsp;&quot;j&quot;,&nbsp;&quot;k&quot;,&nbsp;&quot;l&quot;,&nbsp;&quot;m&quot;,&nbsp;&quot;n&quot;,&nbsp;&quot;o&quot;,&nbsp;&quot;p&quot;,&quot;q&quot;,&nbsp;&quot;r&quot;,&nbsp;&quot;s&quot;,&nbsp;&quot;t&quot;,&nbsp;&quot;u&quot;,&nbsp;&quot;v&quot;,&nbsp;&quot;w&quot;,&nbsp;&quot;x&quot;,&quot;y&quot;,&nbsp;&quot;z&quot;],&nbsp;1)}CHAR_ARR&nbsp;=&nbsp;[(c_1,&nbsp;c_2,&nbsp;c_3)&nbsp;for&nbsp;c_1&nbsp;in&nbsp;CHAR_MAP.keys()&nbsp;for&nbsp;c_2&nbsp;in&nbsp;CHAR_MAP.keys()&nbsp;for&nbsp;c_3&nbsp;in&nbsp;CHAR_MAP.keys()]condition_1&nbsp;=&nbsp;lambda&nbsp;v_1,&nbsp;v_2,&nbsp;v_3,&nbsp;n:&nbsp;v_1&nbsp;+&nbsp;v_2&nbsp;+&nbsp;v_3&nbsp;==&nbsp;ncondition_2&nbsp;=&nbsp;lambda&nbsp;v_1,&nbsp;v_2,&nbsp;v_3,&nbsp;D:&nbsp;abs(v_1&nbsp;-&nbsp;v_2)&nbsp;in&nbsp;D&nbsp;and&nbsp;abs(v_2&nbsp;-&nbsp;v_3)&nbsp;in&nbsp;Ddef&nbsp;check(n:&nbsp;int,&nbsp;D:&nbsp;list[int]):result:&nbsp;str&nbsp;=&nbsp;Noneresult_arr&nbsp;=&nbsp;[]for&nbsp;c_1,&nbsp;c_2,&nbsp;c_3&nbsp;in&nbsp;CHAR_ARR:v_1,&nbsp;v_2,&nbsp;v_3&nbsp;=&nbsp;CHAR_MAP[c_1],&nbsp;CHAR_MAP[c_2],&nbsp;CHAR_MAP[c_3]if&nbsp;condition_1(v_1,&nbsp;v_2,&nbsp;v_3,&nbsp;n)&nbsp;and&nbsp;condition_2(v_1,&nbsp;v_2,&nbsp;v_3,&nbsp;D):result_arr.append((c_1,&nbsp;c_2,&nbsp;c_3))if&nbsp;len(result_arr)&nbsp;==&nbsp;0:result&nbsp;=&nbsp;&quot;NO&quot;else:result_tup&nbsp;=&nbsp;min(result_arr,&nbsp;key=lambda&nbsp;tup:&nbsp;tup[0]&nbsp;+&nbsp;tup[1]&nbsp;+&nbsp;tup[2])result&nbsp;=&nbsp;result_tup[0]&nbsp;+&nbsp;result_tup[1]&nbsp;+&nbsp;result_tup[2]return&nbsp;resultif&nbsp;__name__&nbsp;==&nbsp;&quot;__main__&quot;:data_group_num&nbsp;=&nbsp;int(sys.stdin.readline())for&nbsp;_&nbsp;in&nbsp;range(data_group_num):a&nbsp;=&nbsp;sys.stdin.readline().split()n,&nbsp;k&nbsp;=&nbsp;int(a[0]),&nbsp;int(a[1])D&nbsp;=&nbsp;list(map(lambda&nbsp;s:&nbsp;int(s),&nbsp;sys.stdin.readline().split()))print(check(n,&nbsp;D))
校招笔试
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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