इस समस्या में हमें string str दिया जाता है। हमारा काम एक C++ में दूसरा सबसे लगातार चरित्र खोजने के लिए प्रोग्राम बनाना है ।
समस्या को समझने के लिए एक उदाहरण लेते हैं
इनपुट
str = “abaacabcba”
आउटपुट
‘b’
समाधान दृष्टिकोण
उस चरित्र को खोजने के लिए जो स्ट्रिंग में दूसरा सबसे अधिक बार आता है। हमें एक गिनती सरणी चैट काउंट बनाए रखने की आवश्यकता है जिसका उपयोग स्ट्रिंग में प्रत्येक वर्ण की आवृत्ति को संग्रहीत करने के लिए किया जाता है। और फिर सरणी का उपयोग करके हम सरणी में अधिकतम और दूसरी अधिकतम आवृत्ति के साथ वर्ण पाएंगे। और दूसरा सबसे लगातार चरित्र प्रदर्शित करें।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम
उदाहरण
#include <iostream> #include <string.h> using namespace std; char findSecFreqChar(string str){ int charFreq[256] = {0}; for (int i = 0; i < str.length(); i++) (charFreq[str[i]])++; int maxFreq = charFreq[0], secFreq = charFreq[0]; for (int i = 0; i < 256; i++){ if (charFreq[i] > charFreq[maxFreq]){ secFreq = maxFreq; maxFreq = i; } else if (charFreq[i] > charFreq[secFreq] && charFreq[i] != charFreq[maxFreq]) secFreq = i; } return secFreq; } int main(){ string str = "tutorialspoint"; char secFreqChar = findSecFreqChar(str); cout << "Second most frequent character of the string is"<<secFreqChar; return 0; }
आउटपुट
Second most frequent character of the string is i