728x90
<문제 링크>
https://leetcode.com/problems/find-all-anagrams-in-a-string/
<문제 풀이>
1. 순서 상관 없이 s 안에 연속으로 p의 문자열이 나열되어 있다면 첫번째 인덱스를 반환한다.
2. 순서가 상관이 없으므로 Counter 라이브러리 사용
3. 시간복잡도를 효율적으로 사용하기 위해 여러 변수를 선언해둠
<코드>
from collections import Counter
class Solution:
def findAnagrams(self, s: str, p: str) -> List[int]:
lens = len(s)
lenp = len(p)
Cp = Counter(p)
answer = []
for i in range(lens-lenp+1):
if Counter(s[i:i+lenp]) == Cp:
answer.append(i)
return answer
<고쳐야 할 점>
- len(s), Counter(p) 이런거를 변수로 바꾸고 사용해야 시간 효율성이 좋아짐
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[기타] 프로그래머스 L1 '최소공약수와 최소공배수' (Python) (0) | 2022.03.19 |
---|---|
[DFS] 릿코드 200 Medium 'Number of Islands' (Python) (0) | 2022.02.09 |
[비트연산] 릿코드 231 Easy 'Power of Two' (Python) (0) | 2022.02.05 |
[이분탐색] 릿코드 153 Medium 'Find Minimum in Rotated Sorted Array' (Python) (0) | 2022.02.04 |
[이분탐색] 릿코드 Medium 74 'Search a 2D Matrix' (Python) (0) | 2022.02.03 |