Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import Counter
- def remove_from_matrice(matrice, letter):
- if letter in matrice:
- if matrice[letter] == 1:
- matrice.pop(letter)
- return
- matrice[letter] -= 1
- return
- matrice[letter] = -1
- def add_to_matrice(matrice, letter):
- if letter in matrice:
- if matrice[letter] == -1:
- matrice.pop(letter)
- return
- matrice[letter] += 1
- return
- matrice[letter] = 1
- def index_of_anagrams(w, s):
- output = []
- matrice = dict(Counter(w))
- word_length = len(w)
- for i in range(word_length):
- matrice.setdefault(s[i], 0)
- remove_from_matrice(matrice, s[i])
- if len(matrice) == 0:
- output.append(0)
- for i in range(word_length, len(s)):
- remove_from_matrice(matrice, s[i])
- add_to_matrice(matrice, s[i - word_length])
- if len(matrice) == 0:
- output.append(i - word_length + 1)
- return output
- # w, s = 'ab', 'abxaba'
- w, s = 'hor', 'abhrorhoxhraohrox'
- print(index_of_anagrams(w, s))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement