문자열 s가 있다고 가정하고 그 안에 있는 첫 번째 반복 문자의 인덱스를 찾아야 합니다. 반복되는 문자를 찾을 수 없으면 -1을 반환합니다.
따라서 입력이 "abcade"와 같으면 'a'가 인덱스 3에 다시 있으므로 출력은 3이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 지도 문자 정의
- 0에서 s 크기의 범위에 있는 i에 대해 다음을 수행합니다.
- 문자에 s[i]이면
- 반환
- 그렇지 않으면
- 문자[s[i]] :=문자[s[i]] + 1
- 문자에 s[i]이면
- 반환 -1
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
from collections import defaultdict class Solution: def solve(self, s): chars = defaultdict(int) for i in range(len(s)): if s[i] in chars: return i else: chars[s[i]] += 1 return -1 ob = Solution() print(ob.solve("abcade"))
입력
"abcade"
출력
3