很多人不得不面对算法是因为面试所需,要么就是想从事算法,毕竟算法可不是一般的值钱,但是它,难!
话不多说,今天介绍一个开源项目,用动画的形式帮你理解LeetCode的题目,掌握后也能让你游刃于各种算法面试和一般技术面试,赶紧收藏吧!
这是一个值得任何从事计算机的人收藏的文章,我告诉你为什么:作者会尽力将 LeetCode 上所有的题目都用动画的形式演示出来,计划用 3 到 4 年时间去完成它。
什么是LeetCodeAnimation就是用动画的形式呈现解LeetCode题目的思路。
目前已经有哪些以下是从项目里截图出来的已经完成的部分。
还有很多,文章篇幅,就不一一列出。
效果演示:有效括号判断给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
题目解析
这道题让我们验证输入的字符串是否为括号字符串,包括大括号,中括号和小括号。
这里我们使用栈。
- 遍历输入字符串
- 如果当前字符为左半边括号时,则将其压入栈中
- 如果遇到右半边括号时,分类讨论:
- 1)如栈不为空且为对应的左半边括号,则取出栈顶元素,继续循环
- 2)若此时栈为空,则直接返回false
- 3)若不为对应的左半边括号,反之返回false
动画演示
欢迎收藏这个项目,个人觉得还是很棒的,直观理解思路。让算法不再难。
欢迎关注技术阁,发布有趣的科技资讯,分享有料的技术干货。