栈简介
- 一个后进先出的数据结构
- javascript没有栈,可以用array数据结构模拟栈的功能
let stack = [];
// 返回栈的长度 1
stack.push(1);
// 返回栈的长度 2
stack.push(2);
// 弹出的数据 2
const item1 = stack.pop();
// 弹出的数据 1
const item2 = stack.pop();
使用场景
- 后进先出
- 例如: 十进制转二进制、判断有效的括号、函数调用堆栈...
leetcode-cn.com 算法题实战
题目(完整题目打开leetcode)
解题思路
题目答案
/**
- @param {string} s
- @return {boolean} */ var isValid = function(s) { let stack = [];
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
let stack = [];
for(let c of s) {
if(c === '(' || c === '[' || c === '{') {
stack.push(c);
} else if(c === ')' || c === '}' || c === ']') {
let top = stack[stack?.length - 1];
if((top === '(' && c === ')' ) || (top === '[' && c === ']' ) || (top === '{' && c === '}' ) ) {
stack.pop();
} else {
return false;
}
}
}
return stack.length === 0
};