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