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

Tìm ký tự không lặp lại cuối cùng trong chuỗi trong C++


Cho chuỗi, tìm ký tự không lặp lại cuối cùng. Ví dụ "programming" → 'n'. Nếu không có trả về -1.

Tạo mảng tần suất 256. Duyệt chuỗi cập nhật tần suất. Sau đó duyệt ngược từ cuối, ký tự có tần suất 1 là kết quả.

Ví dụ

#include <iostream> using namespace std; const int MAX = 256; static string searchNonrepeatChar(string str) {    int freq[MAX] = {0};    int n = str.length();    for (int i = 0; i < n; i++)       freq[str.at(i)]++;    for (int i = n - 1; i >= 0; i--) {       char ch = str.at(i);       if (freq[ch] == 1) {          string res;          res+=ch;          return res;       }    }    return "-1"; } int main() {    string str = "programming";    cout<< "Last non-repeating character: " << searchNonrepeatChar(str); }

Kết quả

Last non-repeating character: n