为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第12天 前端面试技能拼图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。

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

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

https://img1.sycdn.imooc.com//6323e1eb0001aeec23981502.jpg

https://img1.sycdn.imooc.com//6323f6ac0001949e23721493.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
1
获赞与收藏
1

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消