Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm chỉ mục ký tự lặp lại đầu tiên trong chuỗi Python

Cho một chuỗi s, tìm chỉ mục của ký tự lặp lại đầu tiên. Nếu không có ký tự lặp lại, trả về -1.

Ví dụ

Đầu vào: "abcade".
Đầu ra: 3 vì ký tự 'a' xuất hiện lại tại chỉ mục 3.

Thuật toán

  1. Tạo một từ điển chars để lưu tần suất ký tự.
  2. Duyệt qua từng chỉ mục i của chuỗi:
    • Nếu s[i] đã có trong chars, trả về i.
    • Ngược lại, tăng tần suất của s[i] trong chars.
  3. Trả về -1 nếu không tìm thấy.

Mã nguồn Python

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 / Đầu ra

Input: "abcade"
Output: 3