栈 stack
写在前面:还没想好写啥。
1.什么是栈?
- 一个后进先出的数据结构
- javascript中其实是没有栈的,但是你可以用Array来实现其所有功能 (push入栈 pop出栈)
2.有什么用?
- 没用!!!
- 解决诸如 10进制转2进制 有效的括号 js中函数调用堆栈等问题
不扯,直接干
LeetCode#20 有效的括号
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
const stack = [];
if(s.length % 2 === 1) { return false; } // 奇数直接 return
for (let i = 0; i<s.length; i++){
const c = s[i];
if(c === '(' || c === '{' || c === '[') { // 入栈
stack.push(c);
} else {
const t = stack[stack.length -1]; //栈顶元素
if(
(t === '(' && c === ')') ||
(t === '{' && c === '}') ||
(t === '[' && c === ']')
){
stack.pop(); //与栈顶元素比较 相同类型则出栈 不同则 false
} else {
return false;
}
}
}
return stack.length === 0;
};
本题有更优解 字典 后续更新
javascript版数据结构与算法将系列 持续更新中









网友评论