इस स्ट्रिंग में कौन सा अक्षर सबसे अधिक बार आता है? इसे आपके लिए समझने के लिए एक प्रोग्राम बनाएं!
प्रोग्रामिंग इंटरव्यू में स्ट्रिंग्स एक बहुत ही महत्वपूर्ण विषय है। अपने साक्षात्कार से पहले स्ट्रिंग्स पर केंद्रित कुछ प्रोग्रामिंग समस्याओं का अभ्यास करना बुद्धिमानी है। इस लेख में, आप सीखेंगे कि किसी स्ट्रिंग में सबसे अधिक बार आने वाले वर्ण को कैसे खोजा जाए।
समस्या को समझने के उदाहरण
उदाहरण 1: दी गई स्ट्रिंग को "मेक्यूज़ऑफ़" होने दें। दिए गए स्ट्रिंग में 'e' वर्ण 2 बार आता है और अन्य सभी वर्ण केवल एक बार आते हैं। इस प्रकार, दिए गए स्ट्रिंग में वर्ण 'ई' की आवृत्ति सबसे अधिक है।
उदाहरण 2: दी गई स्ट्रिंग को "वह पनीर देखती है" होने दें। वर्ण 'ई' दी गई स्ट्रिंग में 6 बार आता है और अन्य सभी वर्ण 6 बार से कम होते हैं। इस प्रकार, दिए गए स्ट्रिंग में वर्ण 'ई' की आवृत्ति सबसे अधिक है।
एक स्ट्रिंग में सबसे अधिक बार आने वाले चरित्र को खोजने के लिए दृष्टिकोण
एक स्ट्रिंग में उच्चतम आवृत्ति वाले वर्ण को खोजने के लिए हैशिंग तकनीक सबसे कुशल तरीका है। इस तकनीक में, स्ट्रिंग को ट्रेस किया जाता है और स्ट्रिंग के प्रत्येक वर्ण को ASCII वर्णों की एक सरणी में हैश किया जाता है।
इनपुट स्ट्रिंग को "मेक्यूज़ॉफ़" होने दें, इस स्ट्रिंग के प्रत्येक वर्ण को निम्नलिखित के रूप में हैश किया गया है:
आवृत्ति ['एम'] = 1
आवृत्ति ['ए] = 1
आवृत्ति ['के'] = 1
आवृत्ति ['ई'] = 2
आवृत्ति ['यू'] = 1
आवृत्ति ['एस'] = 1
आवृत्ति ['ओ'] = 1
आवृत्ति ['एफ'] = 1
आवृत्ति सरणी में अधिकतम मान का सूचकांक लौटाया जाता है। यहाँ 2 उच्चतम मूल्य है, इसलिए 'ई' लौटाया जाता है।
उच्चतम आवृत्ति वाले चरित्र को खोजने के लिए C++ प्रोग्राम
एक स्ट्रिंग में उच्चतम आवृत्ति वाले वर्ण को खोजने के लिए C++ प्रोग्राम नीचे दिया गया है:
सम्बंधित: एक स्ट्रिंग में दिए गए चरित्र की घटनाओं की गणना कैसे करें
// सी ++ प्रोग्राम चरित्र को खोजने के लिए
// एक स्ट्रिंग में उच्चतम आवृत्ति होना having
#शामिल
#शामिल
#ASCII_SIZE 256 परिभाषित करें
नेमस्पेस एसटीडी का उपयोग करना;
चार अधिकतम आवृत्ति चार (स्ट्रिंग स्ट्र)
{
// प्रत्येक वर्ण की आवृत्ति को संग्रहीत करने के लिए सरणी
// प्रत्येक वर्ण की आवृत्ति को 0. के रूप में प्रारंभ करें
इंट फ़्रीक्वेंसी[ASCII_SIZE] = {0};
// इनपुट स्ट्रिंग की लंबाई ढूँढना
int lenOfStr = str.length ();
// अधिकतम आवृत्ति चर प्रारंभ करें
इंट मैक्सफ्रीक्वेंसी = -1;
// maxFrequencyChar वैरिएबल को इनिशियलाइज़ करें
चार अधिकतम आवृत्तिChar;
// ट्रैवर्सिंग और रखरखाव
// प्रत्येक वर्ण की आवृत्ति
के लिए (इंट आई = 0; मैं {
आवृत्ति [str [i]] ++;
अगर (अधिकतम आवृत्ति {
अधिकतम आवृत्ति = आवृत्ति [str [i]];
मैक्स फ़्रीक्वेंसीचर = स्ट्र [i];
}
}
वापसी maxFrequencyChar;
}
// ड्राइवर कोड
मुख्य प्रवेश बिंदु()
{
स्ट्रिंग str1 = "कौन सी चुड़ैल है?";
cout << "str1:" << str1 << endl;
cout << "उच्चतम आवृत्ति वर्ण है:" << maxFrequencyChar (str1) << endl;
स्ट्रिंग str2 = "उसने तीन फ्री थ्रो फेंके";
cout << "str2:" << str2 << endl;
cout << "उच्चतम आवृत्ति वर्ण है:" << maxFrequencyChar (str2) << endl;
स्ट्रिंग str3 = "एडी ने इसे संपादित किया";
cout << "str3:" << str3 << endl;
cout << "उच्चतम आवृत्ति वर्ण है:" << maxFrequencyChar (str3) << endl;
स्ट्रिंग str4 = "मेक्यूज़ऑफ़";
cout << "str4:" << str4 << endl;
cout << "उच्चतम आवृत्ति वर्ण है:" << maxFrequencyChar (str4) << endl;
स्ट्रिंग str5 = "वह पनीर देखती है";
cout << "str5:" << str5 << endl;
cout << "उच्चतम आवृत्ति वर्ण है:" << maxFrequencyChar (str5) << endl;
}
आउटपुट:
str1: कौन सी डायन है?
उच्चतम आवृत्ति वर्ण है: h
str2: उसने तीन फ्री थ्रो फेंके
उच्चतम आवृत्ति वर्ण है: e
str3: एडी ने इसे संपादित किया
उच्चतम आवृत्ति वर्ण है: d
str4: Makeuseof
उच्चतम आवृत्ति वर्ण है: e
str5: वह पनीर देखती है
उच्चतम आवृत्ति वर्ण है: e
उच्चतम आवृत्ति वाले चरित्र को खोजने के लिए पायथन कार्यक्रम
एक स्ट्रिंग में उच्चतम आवृत्ति वाले वर्ण को खोजने के लिए पायथन प्रोग्राम नीचे दिया गया है:
सम्बंधित: सी ++, पायथन और जावास्क्रिप्ट में एक स्ट्रिंग को कैसे उलटें?
# चरित्र को खोजने के लिए पायथन कार्यक्रम
# एक स्ट्रिंग में उच्चतम आवृत्ति होना having
ASCII_SIZE = 256
def maxFrequencyChar (str):
# प्रत्येक वर्ण की आवृत्ति को संग्रहीत करने के लिए सरणी
# प्रत्येक वर्ण की आवृत्ति को 0. के रूप में प्रारंभ करें
आवृत्ति = [0] * ASCII_SIZE
# अधिकतम आवृत्ति चर प्रारंभ करें
अधिकतम आवृत्ति = -1
# maxFrequencyChar वैरिएबल को इनिशियलाइज़ करें
मैक्स फ़्रीक्वेंसीचर = ''
# ट्रैवर्सिंग और रखरखाव
# प्रत्येक वर्ण की आवृत्ति
मैं के लिए str में:
आवृत्ति [कोर्ड (i)] += 1
मैं के लिए str में:
अगर अधिकतम आवृत्ति अधिकतम आवृत्ति = आवृत्ति [ord (i)]
मैक्स फ़्रीक्वेंसीचर = i
वापसी अधिकतम आवृत्तिChar
# ड्राइवर कोड
str1 = "कौन सी डायन है?"
प्रिंट ("str1:", str1)
प्रिंट ("उच्चतम आवृत्ति वर्ण है:", maxFrequencyChar (str1))
str2 = "उसने तीन फ्री थ्रो फेंके"
प्रिंट ("str2:", str2)
प्रिंट ("उच्चतम आवृत्ति वर्ण है:", maxFrequencyChar (str2))
str3 = "एडी ने इसे संपादित किया"
प्रिंट ("str3:", str3)
प्रिंट ("उच्चतम आवृत्ति वर्ण है:", maxFrequencyChar (str3))
str4 = "मेक्यूज़ऑफ़"
प्रिंट ("str4:", str4)
प्रिंट ("उच्चतम आवृत्ति वर्ण है:", maxFrequencyChar (str4))
str5 = "वह पनीर देखती है"
प्रिंट ("str5:", str5)
प्रिंट ("उच्चतम आवृत्ति वर्ण है:", maxFrequencyChar (str5))
आउटपुट:
str1: कौन सी डायन है?
उच्चतम आवृत्ति वर्ण है: h
str2: उसने तीन फ्री थ्रो फेंके
उच्चतम आवृत्ति वर्ण है: e
str3: एडी ने इसे संपादित किया
उच्चतम आवृत्ति वर्ण है: d
str4: Makeuseof
उच्चतम आवृत्ति वर्ण है: e
str5: वह पनीर देखती है
उच्चतम आवृत्ति वर्ण है: e
सी कार्यक्रम उच्चतम आवृत्ति के साथ चरित्र को खोजने के लिए
एक स्ट्रिंग में उच्चतम आवृत्ति वाले वर्ण को खोजने के लिए सी प्रोग्राम नीचे दिया गया है:
सम्बंधित: एक स्ट्रिंग में स्वर, व्यंजन, अंक और विशेष वर्ण कैसे खोजें
// सी प्रोग्राम चरित्र को खोजने के लिए
// एक स्ट्रिंग में उच्चतम आवृत्ति होना having
#शामिल
#शामिल
#ASCII_SIZE 256 परिभाषित करें
नेमस्पेस एसटीडी का उपयोग करना;
चार अधिकतम आवृत्ति चार (चार * str)
{
// प्रत्येक वर्ण की आवृत्ति को संग्रहीत करने के लिए सरणी
// प्रत्येक वर्ण की आवृत्ति को 0. के रूप में प्रारंभ करें
इंट फ़्रीक्वेंसी[ASCII_SIZE] = {0};
// इनपुट स्ट्रिंग की लंबाई ढूँढना
int lenOfStr = strlen (str);
// अधिकतम आवृत्ति चर प्रारंभ करें
इंट मैक्सफ़्रीक्वेंसी = 0;
// maxFrequencyChar वैरिएबल को इनिशियलाइज़ करें
चार अधिकतम आवृत्तिChar;
// ट्रैवर्सिंग और रखरखाव
// प्रत्येक वर्ण की आवृत्ति
के लिए (इंट आई = 0; मैं {
आवृत्ति [str [i]] ++;
अगर (अधिकतम आवृत्ति {
अधिकतम आवृत्ति = आवृत्ति [str [i]];
मैक्स फ़्रीक्वेंसीचर = स्ट्र [i];
}
}
वापसी maxFrequencyChar;
}
// ड्राइवर कोड
मुख्य प्रवेश बिंदु()
{
char str1[] = "कौन सी डायन है?";
प्रिंटफ ("str1:% s", str1);
प्रिंटफ ("उच्चतम आवृत्ति वर्ण है:% c \ n", maxFrequencyChar (str1));
char str2[] = "उसने तीन फ्री थ्रो फेंके";
प्रिंटफ ("str2:% s", str2);
प्रिंटफ ("उच्चतम आवृत्ति वर्ण है:% c \ n", maxFrequencyChar (str2));
चार str3 [] = "एडी ने इसे संपादित किया";
प्रिंटफ ("str3:% s", str3);
प्रिंटफ ("उच्चतम आवृत्ति वर्ण है:% c \ n", maxFrequencyChar (str3));
चार str4 [] = "मेक्यूज़ऑफ़";
प्रिंटफ ("str4:% s", str4);
प्रिंटफ ("उच्चतम आवृत्ति वर्ण है:% c \ n", maxFrequencyChar (str4));
char str5[] = "वह पनीर देखती है";
प्रिंटफ ("str1:% s", str5);
प्रिंटफ ("उच्चतम आवृत्ति वर्ण है:% c \ n", maxFrequencyChar (str5));
}
आउटपुट:
str1: कौन सी डायन है?
उच्चतम आवृत्ति वर्ण है: h
str2: उसने तीन फ्री थ्रो फेंके
उच्चतम आवृत्ति वर्ण है: e
str3: एडी ने इसे संपादित किया
उच्चतम आवृत्ति वर्ण है: d
str4: Makeuseof
उच्चतम आवृत्ति वर्ण है: e
str5: वह पनीर देखती है
उच्चतम आवृत्ति वर्ण है: e
उच्चतम आवृत्ति वाले चरित्र को खोजने के लिए जावास्क्रिप्ट प्रोग्राम
एक स्ट्रिंग में उच्चतम आवृत्ति वाले वर्ण को खोजने के लिए जावास्क्रिप्ट प्रोग्राम नीचे दिया गया है:
// जावास्क्रिप्ट प्रोग्राम चरित्र को खोजने के लिए
// एक स्ट्रिंग में उच्चतम आवृत्ति होना having
चलो ASCII_SIZE = 256;
फ़ंक्शन मैक्स फ़्रीक्वेंसीचर (str)
{
// प्रत्येक वर्ण की आवृत्ति को संग्रहीत करने के लिए सरणी
// प्रत्येक वर्ण की आवृत्ति को 0. के रूप में प्रारंभ करें
चलो आवृत्ति = नया सरणी (ASCII_SIZE);
के लिए (चलो मैं = 0; मैं < ASCII_SIZE; मैं++)
{
आवृत्ति [i] = 0;
}
// इनपुट स्ट्रिंग की लंबाई ढूँढना
चलो lenOfStr = str.length;
के लिए (चलो मैं = 0; मैं {
आवृत्ति [str [i]। charCodeAt (0)] + = 1;
}
// अधिकतम आवृत्ति चर प्रारंभ करें
चलो अधिकतम आवृत्ति = -1;
// maxFrequencyChar वैरिएबल को इनिशियलाइज़ करें
चलो maxFrequencyChar = '';
// ट्रैवर्सिंग और रखरखाव
// प्रत्येक वर्ण की आवृत्ति
के लिए (चलो मैं = 0; मैं {
अगर (अधिकतम आवृत्ति {
अधिकतम आवृत्ति = आवृत्ति [str [i] .charCodeAt (0)];
मैक्स फ़्रीक्वेंसीचर = स्ट्र [i];
}
}
वापसी maxFrequencyChar;
}
// ड्राइवर कोड
चलो str1 = "कौन सी चुड़ैल है?";
दस्तावेज़.लिखें ("str1:" + str1 + "
");
document.write ("उच्चतम आवृत्ति वर्ण है:" + maxFrequencyChar (str1) + "
")
चलो str2 = "उसने तीन फ्री थ्रो फेंके";
दस्तावेज़.लिखें ("str2:" + str2 + "
");
document.write ("उच्चतम आवृत्ति वर्ण है:" + maxFrequencyChar (str2) + "
")
चलो str3 = "एडी ने इसे संपादित किया";
दस्तावेज़.लिखें ("str3:" + str3 + "
");
document.write("उच्चतम आवृत्ति वर्ण है:" + maxFrequencyChar (str3) + "
")
चलो str4 = "मेकयूसेफ़";
दस्तावेज़.लिखें ("str4:" + str4 + "
");
document.write ("उच्चतम आवृत्ति वर्ण है:" + maxFrequencyChar (str4) + "
")
चलो str5 = "वह पनीर देखती है";
दस्तावेज़.लिखें ("str5:" + str5 + "
");
document.write ("उच्चतम आवृत्ति वर्ण है:" + maxFrequencyChar (str5) + "
")
आउटपुट:
str1: कौन सी डायन है?
उच्चतम आवृत्ति वर्ण है: h
str2: उसने तीन फ्री थ्रो फेंके
उच्चतम आवृत्ति वर्ण है: e
str3: एडी ने इसे संपादित किया
उच्चतम आवृत्ति वर्ण है: d
str4: Makeuseof
उच्चतम आवृत्ति वर्ण है: e
str5: वह पनीर देखती है
उच्चतम आवृत्ति वर्ण है: e
समय और स्थान की जटिलता का विश्लेषण करें
समय की जटिलता मैक्स फ़्रीक्वेंसीचर () समारोह है पर). की अंतरिक्ष जटिलता मैक्स फ़्रीक्वेंसीचर () समारोह है हे(1) एक निश्चित स्थान (हैश सरणी) के रूप में। यह इनपुट स्ट्रिंग आकार पर निर्भर नहीं करता है।
बिग-ओ नोटेशन आपको यह गणना करने का एक तरीका देता है कि आपके कोड को चलाने में कितना समय लगेगा। यह एल्गोरिदम के विश्लेषण के लिए सबसे महत्वपूर्ण अवधारणाओं में से एक है। यदि आप एक प्रोग्रामर हैं, तो आपको बिग-ओ नोटेशन के बारे में अवश्य पता होना चाहिए।
आपका कोड कुशल होना चाहिए, लेकिन आप कैसे दिखाते हैं कि कुछ कितना कुशल है? बिग-ओ के साथ!
आगे पढ़िए
- प्रोग्रामिंग
- जावास्क्रिप्ट
- अजगर
- कोडिंग ट्यूटोरियल
- सी प्रोग्रामिंग
युवराज दिल्ली विश्वविद्यालय, भारत में कंप्यूटर विज्ञान के स्नातक छात्र हैं। उन्हें फुल स्टैक वेब डेवलपमेंट का शौक है। जब वह नहीं लिख रहा होता है, तो वह विभिन्न तकनीकों की गहराई की खोज कर रहा होता है।
हमारे न्यूज़लेटर की सदस्यता
तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!
एक और क़दम…!
कृपया उस ईमेल में अपने ईमेल पते की पुष्टि करें जिसे हमने अभी आपको भेजा है।