题目来源:https://leetcode.com/problems/find-all-anagrams-in-a-string/
题目难度:Medium
解法1[Java]:
1 | import java.util.ArrayList; |
思路
先设计了一个 map,把 p 中所有的字符在 map 中的值先加1。
然后设计两个指针,右指针指向哪个字符,就把这个字符在 map 中对应的值减去 1。如果指向的字符不在 p 中,会导致那个字符对应的值小于0,根据这个条件,把左指针一步一步移到和右指针相同的位置,并且在移动的过程中把 map 恢复成最初的数值。这样就相当于从一个新的位置重新开始。