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

Tìm chỉ số ký tự duy nhất đầu tiên trong chuỗi C++


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.