继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第12天 前端面试技能拼图1

丶这是一个点
关注TA
已关注
手记 60
粉丝 1
获赞 1

课程名称:2周刷完100道前端优质面试真题
课程章节:第2章 前端面试技能拼图1 :数据结构和算法(上),大厂面试必考
主讲老师:双越

课程内容:

今天学习的内容包括:
2-7 判断一个字符串是否括号匹配——使用数组模拟栈来判断括号是否匹配。

课程收获:

判断一个字符串是否括号匹配

  • 一个字符串s可能包含{}()[]三种括号。
  • 判断s是否是括号匹配的。
  • 如(a{b}c)匹配,而{a(b 或{a(b}c)就不匹配。
  • 先进先出。
  • API:push pop length。
  • 相关的:队列,堆。
  • 入栈:push。
  • 出栈:pop。
逻辑结构 vs 物理结构
  • 栈 vs 数组
  • 栈,逻辑结构。理论模型,不管如何实现,不受任何语言的限制。
  • 数组,物理结构。真实的功能实现,受限于编程语言。
思路
  • 遇到左括号{([就压栈。
  • 遇到右括号})]就判断栈顶,匹配则出栈。
  • 最后判断length是否为0
性能分析
  • 时间复杂度:O(n)。
  • 空间复杂度:O(n)。
划重点
  • 栈。
  • 逻辑结构 vs 物理结构。
  • 单元测试中判断Boolean类型使用toBe()。
 if(leftSymbols.includes(s)){
      // 左括号,入栈
      stack.push(s)
    }

今天的 学习了 判断一个字符串是否括号匹配,通过数组的特性来模拟栈的功能,使用push入栈、pop出栈。遇到左括号入栈,遇到右括号判断是否出栈,最后判断length是否为0。

下一步就是 用两个栈实现一个队列算法了。今天学习就先到这里吧。

坚持打卡,坚持学习,未来可期,加油😀~

http://img1.mukewang.com/6323e1eb0001aeec23981502.jpg

http://img.mukewang.com/6323f6ac0001949e23721493.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP