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

सी ++ पूर्णांक योग के बाद क्रमबद्ध क्रम में एक स्ट्रिंग को पुनर्व्यवस्थित करें

क्रमबद्ध क्रम में वर्णों की एक स्ट्रिंग को पुनर्व्यवस्थित करने के लिए एक समस्या पर चर्चा करें और स्ट्रिंग में मौजूद सभी पूर्णांकों को जोड़ें, उदाहरण के लिए

Input : str = “adv4fc3”
Output : “ acdfv7”
Explanation: all the letters have been sorted to “acdfv” followed by the sum of integers 4 and 3.

Input: str = “ h2d7e3f ”
Output: “ defh12”
Explanation: all the letters have been sorted to “defh” followed by the sum of integers 2, 7, and 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;
    // traverse through all the characters of string.
    for (int i = 0; i < str.length(); i++){
        // keeping count of occurance every character.
        if (str[i]>='a' && str[i] <='z')
            ch[str[i] - 97] = ch[str[i] - 97] + 1;
        // If an Integer encounters.
        else
            count = count + (str[i]-'0');
    }
    string final = "";
    // Making a sorted string with the help of ch array.
    for (int i = 0; i < 26; i++){
        char a = (char)('a'+i);
        // insert the current character
        // to new string untill it count ends
        while (ch[i]-- != 0)
            final = final + a;
    }
   //  and finally insert sum of all integers in the string.
    if (count>0)
        final = final + to_string(count);
    cout << "Rearranged string: " << final;
    return 0;
}

आउटपुट

Rearranged string: defh12

उपरोक्त कोड की व्याख्या

  • ऐरे ch का आकार 26 से प्रारंभ किया गया है क्योंकि हमें 26 अक्षरों की घटना की गिनती रखने की आवश्यकता है।

  • पहले लूप में, हम स्ट्रिंग के माध्यम से जा रहे हैं। हर अक्षर के लिए हम उस अक्षर की गिनती बढ़ा रहे हैं। प्रत्येक पूर्णांक के लिए, हम इसे गणना चर में जोड़ रहे हैं।

  • दूसरे लूप में, हम उन सभी काउंट्स से एक नया सॉर्टेड स्ट्रिंग बना रहे हैं जिसमें हम कैरेक्टर को उनकी गिनती के अनुसार स्ट्रिंग में जोड़ रहे हैं।

  • और हम अंत में स्ट्रिंग को पहले लूप से गिने गए पूर्णांकों के योग के साथ जोड़ रहे हैं।

निष्कर्ष

इस ट्यूटोरियल में, हमने चर्चा की कि स्ट्रिंग को क्रमबद्ध क्रम में कैसे व्यवस्थित किया जाए और हैश टेबल दृष्टिकोण से इसके आधार पर एक समस्या को हल किया जाए। हमने इस समस्या के लिए C++ कोड पर भी चर्चा की। हम किसी भी अन्य प्रोग्रामिंग भाषा जैसे C, Java, Python, आदि में लिख सकते हैं। हमें उम्मीद है कि आपको यह ट्यूटोरियल मददगार लगेगा।


  1. C++ में वर्णानुक्रम में सबस्ट्रिंग की संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास लंबाई n की एक स्ट्रिंग है। इसमें केवल बड़े अक्षर होते हैं। हमें उन सबस्ट्रिंग्स की संख्या ज्ञात करनी है जिनका वर्ण वर्णानुक्रम में घटित हो रहा है। सबस्ट्रिंग का न्यूनतम आकार 2 होगा। इसलिए यदि स्ट्रिंग इस तरह है:REFJHLMNBV, और सबस्ट्रिंग गिनती 2 है, तो वे EF और MN हैं। तो इसे

  1. सरणी को समान रूप से C++ में विभाजित करने के लिए आवश्यक न्यूनतम धनात्मक पूर्णांक

    समस्या कथन N धनात्मक पूर्णांकों की एक सरणी को देखते हुए, कार्य सबसे छोटा धनात्मक पूर्णांक ज्ञात करना है जिसे सरणी के किन्हीं दो तत्वों के बीच रखा जा सकता है, जैसे कि, इससे पहले होने वाले उप-सरणी में तत्वों का योग, होने वाले तत्वों के योग के बराबर हो इसके बाद के उप-सरणी में, दो उप-सरणी में से किसी ए

  1. सी ++ में किसी अन्य स्ट्रिंग द्वारा परिभाषित वर्णानुक्रम के अनुसार स्ट्रिंग्स की सरणी को क्रमबद्ध करें

    मान लीजिए कि हमारे पास स्ट्रिंग्स की एक सरणी है, और संदर्भ के लिए एक और स्ट्रिंग है। हमें संदर्भ स्ट्रिंग लेनी है और संदर्भ स्ट्रिंग में वर्णों के क्रम का उपयोग करके हम स्ट्रिंग सरणी को सॉर्ट करेंगे। यहां हम सरणी में स्ट्रिंग्स पर विचार कर रहे हैं, और संदर्भ स्ट्रिंग लोअर केस अक्षरों में है। मान ली