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笔试吐槽,赛码的输入太坑了#