首页 > Windows开发 > 详细

076 Minimum Window Substring

时间:2015-07-21 07:49:55      阅读:223      评论:0      收藏:0      [点我收藏+]

076 Minimum Window Substring

这道题就是用一个dictionary来跟踪有多少还需要Match的字母以及当前需要match的次数。 再用一个queue 来记录哪些字幕被Match了以及他们被match的顺序

from collections import defaultdict
class Solution:
    # @param {string} s
    # @param {string} t
    # @return {string}
    def minWindow(self, s, t):
        dic = defaultdict(int)
        for c in list(t):
            dic[c] += 1
        length, tmp, ans = len(t), [], s + "X"
        for i in range(0, len(s)):
            c = s[i]
            if c in dic:
                tmp.append(i)
                dic[c] -= 1
                if dic[c] >= 0:
                    length -= 1
            if length == 0:
                while tmp != []:
                    k = s[tmp[0]]
                    if dic[k] < 0:
                        dic[k] += 1
                        tmp.pop(0)
                    else:
                        break
                if i - tmp[0] < len(ans):
                    ans = s[tmp[0]:i+1]
                k = s[tmp[0]]
                dic[k] += 1
                tmp.pop(0)
                length += 1
        if ans == s + "X":
            return ""
        return ans

 

076 Minimum Window Substring

原文:http://www.cnblogs.com/dapanshe/p/4663272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!