mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
@ -25,8 +25,8 @@
|
||||
|
||||
这个问题有两个陷阱:
|
||||
|
||||
* 陷阱1:栈是容器适配器,底层容器使用不同的容器,导致栈内数据在内存中是不是连续分布。
|
||||
* 陷阱2:缺省情况下,默认底层容器是deque,那么deque的在内存中的数据分布是什么样的呢? 答案是:不连续的,下文也会提到deque。
|
||||
* 陷阱1:栈是容器适配器,底层容器使用不同的容器,导致栈内数据在内存中不一定是连续分布的。
|
||||
* 陷阱2:缺省情况下,默认底层容器是deque,那么deque在内存中的数据分布是什么样的呢? 答案是:不连续的,下文也会提到deque。
|
||||
|
||||
所以这就是考察候选者基础知识扎不扎实的好问题。
|
||||
|
||||
@ -42,7 +42,7 @@
|
||||
|
||||
### 栈在系统中的应用
|
||||
|
||||
如果还记得编译原理的话,编译器在 词法分析的过程中处理括号、花括号等这个符号的逻辑,就是使用了栈这种数据结构。
|
||||
如果还记得编译原理的话,编译器在词法分析的过程中处理括号、花括号等这个符号的逻辑,就是使用了栈这种数据结构。
|
||||
|
||||
再举个例子,linux系统中,cd这个进入目录的命令我们应该再熟悉不过了。
|
||||
|
||||
@ -70,8 +70,8 @@ cd a/b/c/../../
|
||||
|
||||
先来分析一下 这里有三种不匹配的情况,
|
||||
|
||||
1. 第一种情况,字符串里左方向的括号多余了 ,所以不匹配。
|
||||
2. 第二种情况,括号没有多余,但是 括号的类型没有匹配上。
|
||||
1. 第一种情况,字符串里左方向的括号多余了,所以不匹配。
|
||||
2. 第二种情况,括号没有多余,但是括号的类型没有匹配上。
|
||||
3. 第三种情况,字符串里右方向的括号多余了,所以不匹配。
|
||||
|
||||
这里还有一些技巧,在匹配左括号的时候,右括号先入栈,就只需要比较当前元素和栈顶相不相等就可以了,比左括号先入栈代码实现要简单的多了!
|
||||
|
Reference in New Issue
Block a user