在 C++ 中找到字串中最後一個不重複的字元
假設我們有一個字串 str。我們必須找到其中的最後一個不重複的字元。因此,如果輸入字串類似於“programming”。那麼第一個不重複的字元是“n”。如果不存在這樣的字元,則返回 -1。
我們可以透過建立一個頻率陣列來解決這個問題。這將儲存給定字串中每個字元的頻率。一旦更新了頻率,就可以從最後一個字元開始依次遍歷該字串。然後檢查儲存的頻率是否為 1,如果是,則返回,否則返回前一個字元。
示例
#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); }
輸出
Last non-repeating character: n
廣告