Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 주어진 문자열에서 첫 번째 반복 문자의 인덱스를 찾는 프로그램

<시간/>

문자열 s가 있다고 가정하고 그 안에 있는 첫 번째 반복 문자의 인덱스를 찾아야 합니다. 반복되는 문자를 찾을 수 없으면 -1을 반환합니다.

따라서 입력이 "abcade"와 같으면 'a'가 인덱스 3에 다시 있으므로 출력은 3이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 지도 문자 정의
  • 0에서 s 크기의 범위에 있는 i에 대해 다음을 수행합니다.
    • 문자에 s[i]이면
      • 반환
    • 그렇지 않으면
      • 문자[s[i]] :=문자[s[i]] + 1
  • 반환 -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