8.27 360笔试吐槽,赛码的输入太坑了QwQ!

不得不说,赛码的输入是真的坑……用python的 input() 读输入,第一题死活只过9%(只能过9%的,估计都是因为没处理行尾的换行符)。搞了半天,发现改成 input().strip() 马上就能AC了。
第一题DNA替换
记下 a = 第一个是A,第二个是T的数目;t = 第二个是A,第一个是T的数目。输出较大的即可
D1 = input().strip()
D2 = input().strip()
a = t = 0
for i in range(len(D1)):
    if D1[i] == 'A' and D2[i] == 'T':
        a += 1
    elif D1[i] == 'T' and D2[i] == 'A':
        t += 1
print(max(a, t))
第二题快速排序
根据快排的性质,分割点一定在正确的位置上,而每两个分割点之间的数,有可能被打乱顺序。观察输入可以发现,中间这些数的顺序跟原来的顺序一样,因此只需要记下来原来的位置,按照顺序一个一个输出即可。
以样例输入:
数组:1 9 2 8 3 7 4 6 5
分割点:3 7
为例,3和7分别在正确的位置上。3之前的数,根据原来的顺序为[1,2];3~7之间的数,根据原来顺序是[4,6,5];8~9根据原来的顺序是[9,8]
合在一起,就是 [1 2] 3 [4 6 5] 7 [9 8]
n = int(input().strip())
nums = [int(x) for x in input().strip().split()]
k = int(input().strip())
p = sorted([int(x) for x in input().strip().split()]) + [n+1]
idx = {}
for i in range(n):
    idx[nums[i]] = i
ans = sorted(list(range(1, p[0])), key=lambda x: idx[x])
for i in range(k):
    ans.append(p[i])
    ans.extend(sorted(list(range(p[i]+1, p[i+1])), key=lambda x: idx[x]))

print(str(ans)[1:-1].replace(',', ''))

#360笔试##赛码网笔试##python3输入##360笔试吐槽,赛码的输入太坑了#
全部评论
js的输入输出也死活过不了,题目是判断字符串是否合法,试了正则,indexOf,字符unicode编码判断全过不了,真是气人啊
点赞 回复 分享
发布于 2022-08-27 17:01 湖北
我怎么没早点看到这贴……一开始还以为是我自己的问题
点赞 回复 分享
发布于 2022-08-27 18:02 广东
第二题咋做,一直超时,卡在91%
1 回复 分享
发布于 2022-08-27 17:00 广东
博主 能看看你第一题的代码吗 我就是9%
点赞 回复 分享
发布于 2022-08-27 16:49 广东
我去,我就说为啥一直9%
点赞 回复 分享
发布于 2022-08-27 16:50 陕西
666
点赞 回复 分享
发布于 2022-08-27 17:00 北京
我服了,这也太坑了吧
点赞 回复 分享
发布于 2022-08-27 17:17 北京
第二题理解错题意了 淦
点赞 回复 分享
发布于 2022-08-27 17:35 吉林
原来这题是这个意思….
点赞 回复 分享
发布于 2022-08-27 17:39 北京
什么。。。我做了两场笔试巨多%9的。。。难道还跟换行有关系吗!!!
点赞 回复 分享
发布于 2022-08-27 18:52 新加坡
我两题都9,不过不同题
点赞 回复 分享
发布于 2022-08-27 19:15 广东
.strip() 我都没用这个,我靠!
点赞 回复 分享
发布于 2022-09-13 21:11 韩国

相关推荐

5 7 评论
分享
牛客网
牛客企业服务