栈 js版

作者: 两朵小黑云 | 来源:发表于2020-07-28 14:42 被阅读0次

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版数据结构与算法将系列 持续更新中

相关文章

  • 栈 js版

    栈 stack 写在前面:还没想好写啥。 1.什么是栈? 一个后进先出的数据结构 javascript中其实是没...

  • Flask Vue.js 全栈开发

    Flask Vue.js全栈开发 1. Flask Vue.js全栈开发教程系列 Flask Vue.js全栈开发...

  • WEB前端常见面试题及答案2.0

    第一版请见:WEB前端常见面试题及答案 1、js内存机制 JS内存空间分为栈(stack)、堆(heap)、池(一...

  • JS堆、栈、执行栈和EventLoop

    JS堆、栈、执行栈和EventLoop 堆、栈引用类型在栈中保存指针,在堆中保存对象值 执行栈 JS 代码在运行前...

  • Javascript常见API实现

    JS 深拷贝的实现 简易版 问题 WARNING无法解决循环引用的问题,无限递归导致系统栈溢出无法拷贝特殊的对象,...

  • 链表的JS实现

    参考链接:栈的JS实现

  • JS内存图

    画JS内存图可以有效的解决JS中的一些内存问题JS中内存分为2中:栈内存(Stack)跟堆内存(Heap)栈内存:...

  • js知识版图-数据类型

    一、js中内存分为栈内存、堆内存此处引申知识点:js中堆栈内存及函数处理机制 栈内存 从数据类型角度思考 栈内存 ...

  • 4:【栈】栈_js

    近期考试周,码字少,但每天代码练习没少。明天更新栈的一些用法

  • 算法(五):栈

    一、栈(后进先出) JS中没有栈,Array实现栈的所有功能入栈:push出栈:pop // 移除数组最后一项,并...

网友评论

      本文标题:栈 js版

      本文链接:https://www.haomeiwen.com/subject/rsxfrktx.html