信息技术来源:浙江强基联盟2026年5月高三联考
第 10 题
答案与解析
本题解析
参考答案
A
程序分析
i=0
while i<len(s)-1:
if s[i]==s[i+1]:
s=s[:i]+s[i+2:]
i=max(0,i-1)
else:
i+=1i 从0开始,循环比较 s[i] 与其后一个字符 s[i+1]。两者相同时,s[:i] 保留这对字符之前的部分,s[i+2:] 保留其后的部分,拼接后便删除了这一对相同字符。删除可能使原来分隔在两侧的字符成为新的相邻字符,因此令 i 回退一位,重新检查拼接处;max(0,i-1) 保证下标不小于0。两者不同时,i 加1,继续向后检查。该循环不断消去相邻的相同字符,直到当前位置后面已没有字符可比较。
初始 s 为 'aabccba'。i=0 时,开头的 'aa' 相同,删除后 s 为 'bccba',i 仍为0。此时 'b' 与 'c' 不同,i 增至1;随后删除相邻的 'cc',s 变为 'bba',i 回退到0。接着删除新形成的相邻字符 'bb',s 只剩 'a'。此时 len(s)-1 为0,循环条件 0<0 不成立,退出循环,输出 a。
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_05_G3_qiangjilianmeng_q010
