LeetCodeDiary

A Diary for solving LeetCode problems

View on GitHub
'''
Description:
Autor: Au3C2
Date: 2021-02-10 10:54:18
LastEditors: Au3C2
LastEditTime: 2021-02-10 10:55:09
'''
class Solution:
    def checkInclusion(self, s1: str, s2: str) -> bool:
        count_s1 = collections.Counter(s1)
        l_s1, l_s2 = len(s1), len(s2)
        if l_s1 > l_s2 :
            return False
        count_t = collections.Counter(s2[0:l_s1])
        # end = (l_s2-l_s1) if l_s2-l_s1 > 1 else 2
        for i in range(l_s2-l_s1+1):
            flag = True
            for c, n in count_s1.items():
                if count_t[c] == n:
                    continue
                else:
                    flag = False
                    break
            if flag:
                return True
            if i == l_s2-l_s1:
                break
            count_t[s2[i]] -= 1
            count_t[s2[i+l_s1]] += 1
            lookup = s2[i:i+l_s1] 
        return False
    
# 滑动窗口,中等,但我用的哈希表解法?
# https://leetcode-cn.com/problems/permutation-in-string/