1. 栈

1. 栈简介(后进先出)
  • 栈是一个后进先出的数据结构;
  • JS 中没有栈,但是可以用 Array 实现栈中的所有的功能;


    image.png
const stack = [];
stack.push(); // 入栈
const item = stack.pop(); // 出栈
const item = stack.[stack.length -1]; // 查看栈顶元素
2. 栈应用场景
image.png
image.png
image.png
image.png
3. 栈算法题
image.png
image.png
var isValid = function(s) {
    if(s.length % 2 === 1) { return false; }
    const stack = [];
    for(let i = 0; i< s.length; i += 1) {
       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();
            } else {
               return false;
            }
       }
    }
    return stack.length === 0;
}

时间复杂度O(n)和空间复杂度O(n)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容