括号匹配为什么用得上栈
第 1 步:从左往右扫这一串 第 2 步:{ 是左括号:压栈 第 3 步:[ 是左括号:压栈 第 4 步:( 是左括号:压栈 第 5 步:) 配上栈顶:一起消掉 第 6 步:] 配上栈顶:一起消掉 第 7 步:} 配上栈顶:一起消掉 第 8
扫到一个右括号该做什么(C++)
从左往右扫,遇到右括号时应该【0】。
扫完之后栈里还剩东西
扫完整个字符串,栈里还剩着东西,说明【0】。
扫完之后栈里剩几个
运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; int main() {
只有小括号的匹配
补全 ok:只有 ( 和 ),配得上返回 true,配不上返回 false。这次检查的是 (())。 本节约定:ok 配得上返回 true,配不上返回 false,输出用 boolalpha 打成 true / false。 (本题用 g+
少关了一个
同一个 ok,这次检查的是 (()——有一个左括号没关上。 本节约定:ok 配得上返回 true,配不上返回 false,输出用 boolalpha 打成 true / false。 (本题用 g++ -std=c++17 -O0 编译。)
三种括号混着来
补全 ok,这次三种括号都要认:()、[]、{}。检查的是 {[()]}。 本节约定:ok 配得上返回 true,配不上返回 false,输出用 boolalpha 打成 true / false。 (本题用 g++ -std=c++17
说清楚错在哪一头
光返回 false 不够用。补全 why:右括号多出来 → 返回 多了右括号;左括号没关上 → 返回 少了右括号;配得上 → 返回 配平。这次检查的是 ())。 (本题用 g++ -std=c++17 -O0 编译。)
后缀表达式长什么样
第 1 步:算后缀表达式 8 3 - 第 2 步:数字:压栈 第 3 步:数字:压栈 第 4 步:先弹出 3:它在减号右边 第 5 步:再弹出 8:它在减号左边 第 6 步:8 减 3 得 5,压回栈里 8 3 - 8 top 3 5 后缀
扫到数字和符号各做什么
用栈算后缀表达式,规则是【0】。