[Hash Table] Find All Anagrams in a String

2021. 4. 6. 18:01프로그래밍-코딩테스트/LeetCode

s와 p를 input으로 주는데, index=n에서 끊으면 p의 anagrams으로만 구성된 s의 부분집합을 찾으라는 문제이다

 

여기에는 sliding window라는 알고리즘을 적용할 수 있다

슬라이딩 윈도우는 배열의 일정 범위 값을 비교할때 유용하다

index를 두개 두고 범위만큼 조금씩 움직이는 방법이다

모든 배열의 요소를 일일이 체크할 필요가 없기 때문이다

 

s안에서 p의 anagram을 찾아야하기 때문에, left를 시작점, right를 p의 길이로 둔다

이후 left를 s의 길이가 되기 전까지 Loop에 돌려주는데, left-right구간만큼 배열을 substring하여 해당 구간을 sorting하고 비교한다.

이 둘이 같으면 시작index인 left를 결과에 집어넣는다

타임아웃 에러뜬다