信息技术2026年1月浙江选考
第 10 题
答案与解析
本题解析
参考答案
B
程序分析
c,i="",0
while i<len(s)and t>=0:
if s[i]=="e":
t-=1
else:
c+=s[i]
i+=1i从0开始,每轮加1,依次访问字符串中的字符。遇到字符e时,只将t减1;遇到其他字符时,将其追加到c。因此c收集已访问字符中除e以外的字符,t随遇到e的次数减少。
循环每轮开始时检查i<len(s)且t>=0。t等于0时仍会继续处理字符;只有t变为负数或字符已全部访问,才会在下一次条件判断时退出。
s为"keeper",t初值为2,关键状态如下:
| 访问的字符 | 下标i | 本轮结束后的t | 本轮结束后的c |
|---|---|---|---|
| k | 0 | 2 | "k" |
| e | 1 | 1 | "k" |
| e | 2 | 0 | "k" |
| p | 3 | 0 | "kp" |
| e | 4 | -1 | "kp" |
处理第二个e后,t=0仍满足循环条件,故p会加入c。处理第三个e后,t=-1,下一次判断时退出,末尾的r没有被访问,最终c为"kp"。
