美文网首页
8.17 - hard - 63

8.17 - hard - 63

作者: 健时总向乱中忙 | 来源:发表于2017-08-18 12:10 被阅读0次

    316. Remove Duplicate Letters

    一道greedy的题目,也不是很难想,就是挨个挨个朝stack里放,因为要维持一定的顺序,所以用stack比较合适

    class Solution(object):
        def removeDuplicateLetters(self, s):
            """
            :type s: str
            :rtype: str
            """
            stack = []
            h = {}
            for c in s:
                if c in h:
                    h[c] += 1
                else:
                    h[c] = 1
            
            for c in s:
                if c in stack:
                    h[c] -= 1
                    continue
                while stack and stack[-1] >= c and h[stack[-1]] > 1:
                    val = stack.pop()
                    h[val] -= 1
                stack.append(c)
    
            return "".join(stack)
    

    相关文章

      网友评论

          本文标题:8.17 - hard - 63

          本文链接:https://www.haomeiwen.com/subject/tlxarxtx.html