前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode: 76. Minimum Window Substring

leetcode: 76. Minimum Window Substring

作者头像
JNingWei
发布2018-09-27 17:00:50
4950
发布2018-09-27 17:00:50
举报
文章被收录于专栏:JNing的专栏JNing的专栏

Problem

代码语言:javascript
复制
# Given a string S and a string T, find the minimum window in S which
# will contain all the characters in T in complexity O(n).
# 
# For example,
# S = "ADOBECODEBANC"
# T = "ABC"
# Minimum window is "BANC".
# 
# Note:
# If there is no such window in S that covers all characters in T,
# return the emtpy string "".
# 
# If there are multiple such windows, you are guaranteed that
# there will always be only one unique minimum window in S.

AC

代码语言:javascript
复制
class Solution():
    def minWindow(self, s, t):
        current_count = [0 for _ in range(52)]
        expected_count = [0 for _ in range(52)]
        for char in t:
            expected_count[ord(char) - ord('a')] += 1
        i, count, start, min_width, min_start = 0, 0, 0, float("inf"), 0
        while i < len(s):
            current_count[ord(s[i]) - ord('a')] += 1
            if current_count[ord(s[i]) - ord('a')] <= expected_count[ord(s[i]) - ord('a')]:
                count += 1
            if count == len(t):
                while expected_count[ord(s[start]) - ord('a')] == 0 or \
                      current_count[ord(s[start]) - ord('a')] > expected_count[ord(s[start]) - ord('a')]:
                    current_count[ord(s[start]) - ord('a')] -= 1
                    start += 1
                if min_width > i - start + 1:
                    min_width = i - start + 1
                    min_start = start
            i += 1
        if min_width == float("inf"):
            return ""
        return s[min_start:min_start + min_width]


if __name__ == "__main__":
    assert Solution().minWindow("ADOBECODEBANC", "ABC") == 'BANC'
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年11月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Problem
  • AC
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档