算法分析-有效的括号
继续研究:有效的括号 给定一个只包括 、、、、、 的字符串 ,判断字符串是否有效。 有效字符串需满足:左括号必须用相同类型的右括号闭合,左括号必须以正确的顺序闭合,每个右括号都有一个对应的相同类型的左括号。 这道题我曾经做过几次,思路基本上是用栈后进先出的特性来解决。 遇到左括号,压入栈中。遇到右括号,看与栈顶左括号能否匹配上,能匹配则弹出栈顶;与栈顶不匹配直接返回 。一一匹配完后看栈中是否还有剩…
Category
继续研究:有效的括号 给定一个只包括 、、、、、 的字符串 ,判断字符串是否有效。 有效字符串需满足:左括号必须用相同类型的右括号闭合,左括号必须以正确的顺序闭合,每个右括号都有一个对应的相同类型的左括号。 这道题我曾经做过几次,思路基本上是用栈后进先出的特性来解决。 遇到左括号,压入栈中。遇到右括号,看与栈顶左括号能否匹配上,能匹配则弹出栈顶;与栈顶不匹配直接返回 。一一匹配完后看栈中是否还有剩…
今天尝试:合并 K 个升序链表。 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 思考半天没有头绪,试试暴力解法:遍历链表将所有节点放入一个数组,排序后转成新的链表返回。 比较取巧,利用了 Python 本身的排序。 时间复杂度:$O(N \log N)$, 是所有节点总数。空间:$O(N)$( 数组)。 这里并没用到"每条链表本身已经有序"这…
今天研究:字母异位词分组 给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。 读题发现,就是说两个词的字母相同,但是顺序不同,一个词可以通过调整字母顺序变成另一个词,这两个就是字母异位词。 理论上来说,遍历一遍数组,将元素一个个归类就行,难点在于如何知道两个词是异位词。 我首先的想法是将字符串排序,异位词经过排序后就变成了相同的词。然后将排序后的字符串作为 放到字典中归类…