深耕专业教研,探索前沿技术
信息技术来源:温州市普通高中2026届高三第二次适应性考试

第 11 题

答案与解析

本题解析

参考答案

B

程序分析

c = [0, 0]
for x in q:
    c[x] += 1

遍历q时,以元素值x作为c的下标,将对应项加1。因此c[0]、c[1]分别统计q中0、1的个数,供后续按类别扣减。

i = 0
while i < len(st) and c[st[i]] > 0:
    c[st[i]] -= 1
    i += 1
ans = len(st) - i

从st的第一个元素开始,若当前元素对应的剩余数量大于0,就扣减1并将i加1,继续处理下一个元素。因此i既是下一个待处理元素的下标,也是已成功处理的元素个数。
一旦当前类别的剩余数量为0,循环立即结束,不会跳过当前元素继续处理后面的元素。ans用总长度减去已处理个数,表示从停止位置到末尾尚未处理的元素个数。

q中0、1各有3个,计数后c=[3,3]。按st的顺序扣减:

已处理的st元素 c[0] c[1] i
无 3 3 0
1 3 2 1
1,0 2 2 2
1,0,1 2 1 3
1,0,1,1 2 0 4

此时st[4]=1,而c[1]=0,循环停止。下标4、5处的1和0都未处理,即使0仍有剩余,也不会越过前面的1继续处理。故ans=6-4=2。