栈
- 一个后进先出的数据结构
- push(入栈),pop(出栈),js没有栈的概念但是可以用Array实现栈的所有功能
const stack = [];stack.push(1);stack.push(2);const item1 = stack.pop();const item2 = stack.pop();
什么场景下使用栈
需要后进先出的场景
- 十二进制转二进制
- 判断字符串的括号是否有效,函数调用堆栈
十进制转二进制
![]()
![]()
20.有效的括号 — leetCode
function isValid(s){let stack = [];let stackTop;if(s.length%2 === 1){return false}for(let i = 0;i++;i<s.length){if(s[i] === '[' || s[i] === '{' || s[i] === '('){stack.push(s[i])}else{stackTop = s[s.length-1];if(s[i] === ']' && stackTop === '[' || s[i] === '}' && stackTop === '{' || s[i] === ')' && stackTop === '('){stack.pop()}else{return false}}}return stack.length === 0}let arrs = ['[','{','}',']'];let res = isValid(arrs);console.log(res)
有效的括号
