मान लीजिए हमारे पास एक स्ट्रिंग str है। हमें इसमें अंतिम गैर-दोहराया गया वर्ण खोजना है। तो यदि इनपुट स्ट्रिंग "programming" जैसी है। तो पहला गैर-दोहराया गया वर्ण 'n' है। यदि ऐसा कोई वर्ण मौजूद नहीं है, तो -1 वापस करें।
हम इसे एक फ्रीक्वेंसी ऐरे बनाकर हल कर सकते हैं। यह दिए गए स्ट्रिंग के प्रत्येक वर्ण की फ्रीक्वेंसी स्टोर करेगा। एक बार फ्रीक्वेंसी अपडेट हो जाने के बाद, फिर स्ट्रिंग को अंतिम वर्ण से एक-एक करके पार करना शुरू करें। फिर जांचें कि स्टोर की गई फ्रीक्वेंसी 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