在 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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP