Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ . का उपयोग कर इनपुट स्ट्रिंग में अधिकतम होने वाला वर्ण

इस समस्या में, हमें लोअरकेस वर्णों की एक इनपुट स्ट्रिंग दी जाती है। हमारा काम m . करना है इनपुट स्ट्रिंग में अधिकतम होने वाला वर्ण

घटना की एक ही आवृत्ति के साथ कई मानों के मामले में, हमें शब्दकोषीय रूप से छोटे मानों को मुद्रित करने की आवश्यकता होती है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

string = “programming”

आउटपुट

g

समाधान दृष्टिकोण

समस्या का समाधान खोजने के लिए, हमें रीड स्ट्रिंग को सॉर्ट करना होगा और फिर स्ट्रिंग को ट्रैवर्स करना होगा ताकि हम उस कैरेक्टर को ढूंढ सकें जिसकी स्ट्रिंग में अधिकतम आवृत्ति है। हम इस समस्या को दूर करने के लिए हैशिंग विधि (हैश टेबल विधि) का उपयोग करेंगे। प्रत्येक व्यक्तिगत वर्ण को वर्णों की एक सरणी में ट्रैवर्स करना और हैश करना हैशिंग कहलाता है।

आमतौर पर, हैश सरणी का आकार 256 होने के लिए आवंटित किया जाता है। लेकिन अगर स्ट्रिंग में केवल 0 से 127 तक के वर्ण हैं, तो हम 128 आकार की हैश तालिका का उपयोग कर सकते हैं, ताकि हम स्ट्रिंग के अनुसार हैश तालिका आकार को हटा सकें।

एल्गोरिदम

  • एक इनपुट स्ट्रिंग पढ़ें।

  • स्ट्रिंग में अधिकतम होने वाले वर्ण की गणना करने के लिए एक फ़ंक्शन बनाएं।

  • अलग-अलग वर्णों की गिनती रखने के लिए एक सरणी बनाएं और सरणी को 0 के रूप में प्रारंभ करें।

  • इनपुट स्ट्रिंग से कैरेक्टर काउंट ऐरे का निर्माण करें।

  • अधिकतम गणना और परिणाम प्रारंभ करें।

  • स्ट्रिंग के माध्यम से पार करें और एक दूसरे की गिनती बनाए रखें।

  • अंत में, अधिकतम संख्या वाले वर्ण को ढूंढें और उसे प्रिंट करें।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <bits/stdc++.h>
using namespace std;
char findMaxOccuringChar(char str[]){
   int freq[26] = { 0 };
   int maxFreq = -1;
   char maxFreqChar;
   int len = strlen(str);
   for (int i = 0; i < len; i++)
      freq[str[i] - 'a']++;
   for (int i = 0; i < 26; i++)
      if (maxFreq < freq[i]) {
         maxFreq = freq[i];
         maxFreqChar = (char)(i + 'a');
      }
   return maxFreqChar;
}
int main(){
   char str[] = "programming";
   cout<<"Maximum occurring character of input string is "<<findMaxOccuringChar(str);
   return 0;
}

आउटपुट

Maximum occurring character of input string is g

  1. सी ++ में ऐरे में उपसर्ग की अधिकतम घटना

    इस समस्या में, हमें सभी लोअरकेस में वर्णों की एक सरणी दी गई है। हमारा काम सरणी में उपसर्ग की अधिकतम उपस्थिति . है । हमें गैर-रिक्त उपसर्गों की पुनरावृत्ति की गणना करने की आवश्यकता है जिनकी घटना संख्या अधिकतम है। समस्या को समझने के लिए एक उदाहरण लेते हैं, Input : string = “xyyzkxyyzk”

  1. C++ का उपयोग करके किसी दिए गए शब्द को स्ट्रिंग से निकालें

    इस लेख में, हम किसी दिए गए शब्द को किसी दिए गए स्ट्रिंग से हटाने की समस्या को हल करेंगे। उदाहरण के लिए - Input : str = “remove a given word ”, word = “ remove ” Output : “ a given word ” Input : str = “ god is everywhere ”, word = “ is ” O

  1. C++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu