Grokking the Coding Interview: Patterns for Coding Questions
Ask Author
Back to course home

0% completed

Vote For New Content
 sealess
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