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