Cho chuỗi s, tìm chỉ số của ký tự đầu tiên **không lặp lại** (xuất hiện đúng 1 lần). Nếu không có, trả về -1. Ví dụ:
Đầu vào 1: "tutorialspoint" → Đầu ra: 1 (ký tự 'u' tại chỉ số 1).
Đầu vào 2: "aaasttarrs" → Đầu ra: -1.
Phương pháp: Hashmap đếm tần suất
- Duyệt chuỗi, đếm tần suất mỗi ký tự vào
unordered_map<char,int>. - Duyệt chuỗi lần 2, ký tự đầu tiên có count == 1 → trả về chỉ số.
- Nếu hết chuỗi không thấy → trả về -1.
Ví dụ mã nguồn
#include <bits/stdc++.h>
using namespace std;
int uniqueChar(string str) {
unordered_map<char,int> mp;
for (char c : str) mp[c]++;
for (int i=0;i
Kết quả
1
Ký tự duy nhất đầu tiên là 'u' tại chỉ số 1.