美文网首页
37 - Hard - 最小窗口子字符串

37 - Hard - 最小窗口子字符串

作者: 1f872d1e3817 | 来源:发表于2018-06-04 11:31 被阅读0次

给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串。

示例:

输入: S = "ADOBECODEBANC", T = "ABC"
输出: "BANC"
说明:

如果 S 中不存这样的子串,则返回空字符串 ""。
如果 S 中存在这样的子串,我们保证它是唯一的答案。

class Solution(object):
    def minWindow(self, s, t):
        """
        :type s: str
        :type t: str
        :rtype: str
        """
        count1 = {}
        count2 = {}
        for char in t:
            if char not in count1:
                count1[char] = 1
                count2[char] = 1
            else:
                count1[char] += 1
                count2[char] += 1

        count = len(t)

        start = 0
        minSize = len(s) + 1
        minStart = 0

        for end in range(len(s)):
            if s[end] in count2 and count2[s[end]] > 0:
                count1[s[end]] -= 1
                if count1[s[end]] >= 0:
                    count -= 1
                if count == 0:
                    while True:
                        if s[start] in count2 and count2[s[start]] > 0:
                            if count1[s[start]] < 0:
                                count1[s[start]] += 1
                            else:
                                break
                        start += 1
                    if minSize > end - start + 1:
                        minSize = end - start + 1
                        minStart = start
        if minSize < len(s) + 1:
            return s[minStart:minStart + minSize]
        else:
            return ''    

相关文章

  • 37 - Hard - 最小窗口子字符串

    给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串。 示例: 输入: S = "A...

  • 怕麻烦的人杂七杂八的事

    2019.10.02 23:37 晴转雨 今天又被猫抓了几道口子 感觉很累 从学校出来以后去了一趟图书馆 背靠着窗...

  • 最小窗口子串

    已知字符串S与字符串T,求在S中的最小窗口(区间),使得这个区间中包含 了字符串T中的所有字符。例如: S = “...

  • PAT顶级 || 1001 Battle Over Cities

    1001 Battle Over Cities - Hard Version (35分) 思路:最小生成树MST ...

  • Longest Substring with At Most T

    Hard, Array/String 给定字符串,寻找最多包含两个重复字符的最长子字符串。P.S. 无重复字符串进...

  • shell截取字符串

    获取字符串长度 最小限度从前面截取字符串 最大限度从前面截取字符串 最小限度从后面截取字符串 最大限度从后面截取字...

  • 最小编辑距离_Python

    最小编辑距离或莱文斯坦距离(Levenshtein),指由字符串A转化为字符串B的最小编辑次数。允许的编辑操作有:...

  • Valid Number 有效数

    Hard, Array/String 判断给定字符串是否为数字 Example:'0' True'1.' Tru...

  • 这题写的我不想活了-leetcode-76(hard)

    最小覆盖子串给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。示例:输入...

  • [V2] 76. Minimum Window SubStrin

    最小窗口子串。原题出处:LeetCode 76. Minimum Window Substring05/08/20...

网友评论

      本文标题:37 - Hard - 最小窗口子字符串

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