वर्णमाला की एक स्ट्रिंग को सॉर्टेड क्रम में पुनर्व्यवस्थित करने और स्ट्रिंग में मौजूद सभी पूर्णांकों को जोड़ने की समस्या पर चर्चा करें, उदाहरण के लिए:
इनपुट: str = "adv4fc3" आउटपुट: "acdfv7" व्याख्या: सभी अक्षरों को "acdfv" में सॉर्ट किया गया है जिसके बाद पूर्णांकों 4 और 3 का योग है। इनपुट: str = "h2d7e3f" आउटपुट: "defh12" व्याख्या: सभी अक्षरों को "defh" में सॉर्ट किया गया है जिसके बाद पूर्णांकों 2, 7, और 3 का योग है।
समाधान खोजने का दृष्टिकोण
इस समस्या में हमारे पास दो कार्य हैं, एक है स्ट्रिंग को सॉर्ट करना, और दूसरा है पूर्णांक मानों को जोड़ना।
स्ट्रिंग को सॉर्ट करना स्ट्रिंग में हर अक्षर की गिनती रखकर और फिर सभी अक्षरों को उनकी गिनती के अनुसार डालकर एक नई स्ट्रिंग बनाकर किया जा सकता है।
हम पूर्णांकों का जोड़ हर बार पूर्णांक आने पर एक वेरिएबल में जोड़कर कर सकते हैं।
उदाहरण
उपरोक्त दृष्टिकोण के लिए C++ कोड
#include<bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;
int main() {
string str = "h2d7e3f";
int ch[26] = {0};
int count = 0;
// स्ट्रिंग के सभी वर्णों के माध्यम से ट्रैवर्स करना।
for (int i = 0; i < str.length(); i++) {
// हर वर्ण की घटना की गिनती रखना।
if (str[i] >= 'a' && str[i] <= 'z')
ch[str[i] - 'a'] = ch[str[i] - 'a'] + 1;
// यदि एक पूर्णांक मिलता है।
else
count = count + (str[i] - '0');
}
string final = "";
// ch एरे की मदद से एक सॉर्टेड स्ट्रिंग बनाना।
for (int i = 0; i < 26; i++) {
char a = (char)('a' + i);
// वर्तमान वर्ण को डालना
// नई स्ट्रिंग में तब तक जब तक इसकी गिनती खत्म न हो जाए
while (ch[i]-- != 0)
final = final + a;
}
// और अंत में स्ट्रिंग में सभी पूर्णांकों का योग डालें।
if (count > 0)
final = final + to_string(count);
cout << "पुनर्व्यवस्थित स्ट्रिंग: " << final;
return 0;
}
आउटपुट
<प्रे class="result notranslate">पुनर्व्यवस्थित स्ट्रिंग: defh12उपरोक्त कोड की व्याख्या
आकार 26 का एरे ch इनिशियलाइज़ किया गया है क्योंकि हमें 26 वर्णमालाओं की घटना की गिनती रखने की आवश्यकता है।
पहले लूप में, हम स्ट्रिंग के माध्यम से ट्रैवर्स कर रहे हैं। हर वर्णमाला के लिए, हम उस वर्णमाला की गिनती बढ़ा रहे हैं। हर पूर्णांक के लिए, हम इसे काउंट वेरिएबल में जोड़ रहे हैं।
दूसरे लूप में, हम सभी गिनती से एक नई सॉर्टेड स्ट्रिंग बना रहे हैं जिसमें हम वर्ण को उनकी गिनती के अनुसार स्ट्रिंग में जोड़ रहे हैं।
और हम पहले लूप से गिने गए पूर्णांकों के योग के साथ स्ट्रिंग को अंत में जोड़ रहे हैं।
निष्कर्ष
इस ट्यूटोरियल में, हमने हैश टेबल दृष्टिकोण से इस पर आधारित एक समस्या को हल करते हुए एक स्ट्रिंग को सॉर्टेड क्रम में व्यवस्थित करने पर चर्चा की। हमने इस समस्या के लिए C++ कोड पर भी चर्चा की। हम इसे C, Java, Python आदि किसी भी अन्य प्रोग्रामिंग भाषा में लिख सकते हैं। आशा है कि आपको यह ट्यूटोरियल मददगार लगा होगा।