Skip to main content

numberOfStringsThatAppearAsSubstrings

class Solution:
def numOfStrings(self, patterns: List[str], word: str) -> int:
resp = 0
self.charToIdx = defaultdict(list)
for idx, _char in enumerate(word):
self.charToIdx[_char].append(idx)

for pattern in patterns:
resp += self.check(pattern, word)

return(resp)

def check(self, pattern, word):
for startIdx in self.charToIdx[pattern[0]]:
endIdx = startIdx + len(pattern)
if endIdx <= len(word) and word[startIdx : endIdx] == pattern:
return(1)

return(0)