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

Tìm ký tự không lặp lại đầu tiên từ luồng ký tự trong Python


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

Ví dụ: "people" → 'o' tại chỉ số 2. "abaabba" → -1.

Giải thuật

  • Đếm tần suất mỗi ký tự (dictionary).
  • Duyệt chuỗi lần 2, trả về chỉ số đầu tiên có tần suất = 1.

Ví dụ

class Solution:
    def firstUniqChar(self, s):
        frequency = {}
        for ch in s:
            frequency[ch] = frequency.get(ch, 0) + 1
        for i in range(len(s)):
            if frequency[s[i]] == 1:
                return i
        return -1

ob1 = Solution()
print(ob1.firstUniqChar("people"))   # 2
print(ob1.firstUniqChar("abaabba"))  # -1

Đầu vào

"people", "abaabba"

Đầu ra

2 -1