Back to course home
0% completed
Vote For New Content
The classic and magic solution!
sealess
Mar 31, 2024
import math
class Solution:
def findPermutation(self, str1, pattern):
if len(str1) < len(pattern):
return False
if str1 == pattern and len(str1) >0:
return True
pattern_map = {}
for i in pattern:
pattern_map[i] = pattern_map.get(i,0)+1
window_len = len(pattern)
start = 0
window_map = {}
for end in range(len(str1)):
end_char = str1[end]
window_map[end_char] = window_map.get(end_char, 0)+1
if end - start +1 > window_len:
start_char = str1[start]
window_map[start_char] -=1
if window_map[start_char] == 0:
del window_map[start_char]
start+=1
if window_map == pattern_map:
return True
return False
0
0
Comments
Comments
On this page