当前位置: 首页 > 面试经验 >

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

优质
小牛编辑
133浏览
2023-03-28

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