空栈也能安全看一眼
补全 is_empty 和 peek:栈空时 peek 返回 空栈,否则返回栈顶。 这次看的是一个刚建好、什么都没放的栈。
开始练习 →
弹过头也不能崩
补全 safe_pop:栈空时返回 空栈,否则正常弹出。 压进两个人,然后连弹三次,输出第三次的结果。
开始练习 →
括号匹配为什么用得上栈
检查括号配不配得上要用栈,是因为【0】。
开始练习 →
扫到一个右括号该做什么
从左往右扫,遇到右括号时应该【0】。
开始练习 →
全部扫完之后栈里还剩东西
扫完整个字符串,栈里还剩着东西,说明【0】。
开始练习 →
扫完之后栈里剩几个
运行下面这段程序: st = [] for ch in "(()": if ch == "(": st.append(ch) else: st.pop(
开始练习 →
只有小括号的匹配
补全 ok:只有 ( 和 ),配得上返回 True,配不上返回 False。 这次检查的是 (())。
开始练习 →
少关了一个
同一个 ok,这次检查的是 (()——有一个左括号没关上。
开始练习 →
三种括号混着来
补全 ok,这次三种括号都要认:()、[]、{}。 检查的是 {[()]}。
开始练习 →
说清楚到底错在哪一头
光返回 False 不够用。补全 why: 右括号多出来 → 返回 多了右括号 左括号没关上 → 返回 少了右括号 配得上 → 返回 配平 这次检查的是 ())。
开始练习 →