Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm chỉ mục của Ký tự lặp lại đầu tiên trong chuỗi đã cho bằng Python

Giả sử chúng ta có một chuỗi s, chúng ta phải tìm chỉ số của ký tự lặp lại đầu tiên trong đó. Nếu wecannot không tìm thấy ký tự lặp lại nào, thì trả về -1.

Vì vậy, nếu đầu vào giống như "abcade", thì đầu ra sẽ là 3, vì 'a' lại xuất hiện ở chỉ mục 3.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • xác định ký tự bản đồ
  • đối với tôi trong phạm vi từ 0 đến kích thước của s, thực hiện
    • nếu s [i] bằng ký tự thì
      • trả lại tôi
    • nếu không,
      • chars [s [i]]:=chars [s [i]] + 1
  • trả về -1

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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"))

Đầu vào

"abcade"

Đầu ra

3