信息技术来源:浙江省新阵地教育联盟2026届第二次联考技术试题卷
第 9 题
答案与解析
本题解析
参考答案
B
程序分析
res, i, t = "", 0, 1
s=input()
while i < len(s) and t >= 0:
ch = s[i]
if ch == '@':
t -= 1
elif ch == '$':
t += 1
else:
res += ch
i += 1循环从下标0开始,每轮处理一个字符:遇到@使t减1,遇到$使t加1,其余字符追加到res。因此,res收集已处理部分中除@、$以外的字符,t等于1加上已处理的$个数再减去@个数。
每轮开始前检查i是否越界、t是否非负。t=0时仍可进入循环;某轮使t变为负数后,该轮仍会执行i加1,到下一次判断循环条件时才停止。
将输入按影响t的符号分段,处理过程如下:
| 本段处理的字符 | 处理后i | 处理后t | 处理后res |
|---|---|---|---|
| a@ | 2 | 0 | a |
| b$ | 4 | 1 | ab |
| c@ | 6 | 0 | abc |
| d@ | 8 | -1 | abcd |
处理第三个@后,t=-1,下一轮条件不成立,末尾的e不再处理,res为abcd。
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_03_G3_xinzhendi_q009
