随笔分类 -  AL_Stack

摘要:Longest Valid Parentheses 最长有效括号数 动态规划 思路:看到这道题,首先想到的是动态规划,然后想用之前做最长回文串的思路来做,但是后来发现它的括号并不一定是嵌套的,比如()(),这种情况下用之前的方法就不行了。 假定dp[i]表示从下标i开始到字符串最后构成的最长回文串的 阅读全文
posted @ 2017-09-16 16:00 banananana 阅读(463) 评论(0) 推荐(0) 编辑
摘要:316. Remove Duplicate Letters 题意:删除重复的字母,同时还要要求删除后的结果是最小的。 思路:利用贪心的思想,需要维持一个最小的字符串,如果遇到当前字符在后面还存在的话则不管;如果遇到当前字符比之前记录的要小的话则加入;如果遇到当前字符是只出现一次的则加入; 暴力 to 阅读全文
posted @ 2017-09-07 15:10 banananana 阅读(127) 评论(0) 推荐(0) 编辑
摘要:20. Valid Parentheses 思路:有效的括号 栈 class Solution(object): def isValid(self, s): """ :type s: str :rtype: bool """ stack = [] for x in s: if x in '})]': 阅读全文
posted @ 2017-09-06 19:19 banananana 阅读(123) 评论(0) 推荐(0) 编辑
摘要:225. Implement Stack using Queues 思路:用两个队列实现 import collections class MyStack(object): def __init__(self): """ Initialize your data structure here. "" 阅读全文
posted @ 2017-09-06 19:01 banananana 阅读(104) 评论(0) 推荐(0) 编辑
摘要:232. Implement Queue using Stacks 思路:用两个栈来回换就行。 class MyQueue(object): def __init__(self): """ Initialize your data structure here. """ self.stack = [ 阅读全文
posted @ 2017-09-06 16:46 banananana 阅读(89) 评论(0) 推荐(0) 编辑
摘要:227. Basic Calculator II 题意:和1相比,增加了乘号和除法,不过反而把括号去掉了,求表达式结果。 栈 下面是基于Python2,因为LeetCode只允许Python2,需要注意的是,//得到的是它们的商再向下取整,特别是负数的时候。比如: print 3//2 # 1 pr 阅读全文
posted @ 2017-08-26 13:21 banananana 阅读(135) 评论(0) 推荐(0) 编辑
摘要:224. Basic Calculator 栈 思路:提前准备一个装满两位操作符的运算符栈,分别用于计算开始的结果,一个用于之后的运算符,保证每一个数字都拥有自己的运算符(不管括号),将每一位数乘以弹出的运算符的结果累加计算最终结果。 class Solution(object): def calc 阅读全文
posted @ 2017-08-26 11:54 banananana 阅读(104) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示