zoukankan      html  css  js  c++  java
  • leetcode-hard-array-76. Minimum Window Substring -NO

    mycode

    不会。。

    参考:

    class Solution(object):
        def minWindow(self, s, t):
            """
            :type s: str
            :type t: str
            :rtype: str
            """
            count1 = collections.defaultdict(int)
            count2 = []
            for char in t:
                count1[char] += 1
                count2.append(char)
    
            count = len(t)
            start = 0
            minSize = len(s) + 1
            minStart = 0
    
            for end in range(len(s)):
                if s[end] in count2 :
                    #print(end,count1,count2,count)
                    count1[s[end]] -= 1
                    if count1[s[end]] >= 0:  #<=0时表示出现了多余的t中要求的元素,比如t中两个A,现在出现了第三个A,所以没必要count-1
                        count -= 1
                    if count == 0:
                        while True:                      
                            if s[start] in count2  :
                                if count1[s[start]] < 0:  #s中第一个出现t中元素的位置可以被更换啦
                                    count1[s[start]] += 1
                                else:  #
                                    print(start) 
                                    break
                            start += 1
                        if minSize > end - start + 1:
                            minSize = end - start + 1
                            minStart = start
                    #print(end,count1,count2,count)
                 
            if minSize < len(s) + 1:
                return s[minStart:minStart + minSize]
            else:
                return ''    
            
            class Solution(object):
        def minWindow(self, s, t):
            """
            :type s: str
            :type t: str
            :rtype: str
            """
            count1 = collections.defaultdict(int)
            count2 = []
            for char in t:
                count1[char] += 1
                count2.append(char)
    
            count = len(t)
            start = 0
            minSize = len(s) + 1
            minStart = 0
    
            for end in range(len(s)):
                if s[end] in count2 :
                    #print(end,count1,count2,count)
                    count1[s[end]] -= 1
                    if count1[s[end]] >= 0:
                        count -= 1
                    if count == 0:
                        while True:
                          
                            if s[start] in count2  :
                                if count1[s[start]] < 0:
                                    count1[s[start]] += 1
                                else:
                                    print(start)
                                    break
                            start += 1
                        if minSize > end - start + 1:
                            minSize = end - start + 1
                            minStart = start
                    #print(end,count1,count2,count)
                 
            if minSize < len(s) + 1:
                return s[minStart:minStart + minSize]
            else:
                return ''    
            
            
  • 相关阅读:
    php常见的数据类型
    PHP基础语法
    php表单处理
    php操作mongodb基础语法
    php连接MongoDB数据库,对数据库的增删改查
    Linux常见命令
    python操作redis——基本安装和启动
    MySQL简单的存储图片信息
    基本的位运算
    OS七层模型解析
  • 原文地址:https://www.cnblogs.com/rosyYY/p/11044806.html
Copyright © 2011-2022 走看看