信息技术来源:宁波市 2025 学年第二学期高考模拟考试
第 11 题
答案与解析
本题解析
参考答案
D
程序分析
top1 = len(s1)-1
top2 = -1
k = 0
while top1 != -1:
...题目已说明s1、s2用于存储两个栈。top1、top2分别指向栈顶,下标0为栈底,-1表示空栈;s1初始有n个有效元素,s2初始为空。外层循环在s1非空时继续处理。栈的有效范围由栈顶下标决定,不能用列表中是否还留有旧值来判断栈是否为空。
temp = s1[top1]
top1 -= 1
k += 1取出s1栈顶元素保存到temp,再将栈顶下标减1,完成一次出栈。k每次加1,统计从s1取出元素的总次数;此处没有删除或清空列表中的原存储项。
while top2 != -1 and temp < s2[top2]:
top1 += 1
s1[top1] = s2[top2]
top2 -= 1当s2非空且其栈顶元素大于temp时,将该元素压回s1,并把s2栈顶下标减1。循环持续移走s2顶部比temp大的元素,直到s2为空或栈顶元素不大于temp。这里比较的是字符串,按字符编码逐位比较,例如'105' < '33'。
top2 += 1
s2[top2] = temp将temp压入s2。此前比temp大的栈顶元素已移走,因此这次插入保持s2从栈底到栈顶按字符串顺序非降序。被移回s1的元素还会在后续外层循环中再次取出。
选项分析
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_04_G3_ningboermo_q011
