信息技术来源:温州市普通高中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。
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_04_G3_wenzhouermo_q011
