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

C++ में समान स्ट्रिंग प्राप्त करने के लिए न्यूनतम रोटेशन


समस्या कथन

एक स्ट्रिंग दी गई है, हमें समान स्ट्रिंग प्राप्त करने के लिए आवश्यक न्यूनतम रोटेशन की संख्या ज्ञात करनी है

उदाहरण

यदि इनपुट स्ट्रिंग "bbbbb" है तो न्यूनतम 1 रोटेशन आवश्यक है

एल्गोरिदम

1. परिणाम = 0 आरंभ करें 2. मूल स्ट्रिंग को स्वयं के साथ जोड़कर एक अस्थायी स्ट्रिंग बनाएं। 3. मूल स्ट्रिंग के समान आकार का अस्थायी स्ट्रिंग का सबस्ट्रिंग लें जो दूसरे वर्ण यानी इंडेक्स 1 से शुरू होता है 4. काउंटर बढ़ाएं 5. जांचें कि क्या सबस्ट्रिंग मूल स्ट्रिंग के बराबर हो जाती है। यदि हां, तो लूप तोड़ें। अन्यथा चरण 2 पर जाएं और अगले इंडेक्स से दोहराएं

उदाहरण

#include <bits/stdc++.h> using namespace std; int getRotationCount(string str) {    string temp = str + str;    int n = str.length();    for (int i = 1; i <= n; ++i) {       string sub = temp.substr(i, str.size());          if (str == sub) {             return i;          }    }    return n; } int main() {    string str = "bbbbb";    cout << "रोटेशन काउंट = " << getRotationCount(str) <<    endl;    return 0; }

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्नलिखित आउटपुट उत्पन्न करता है

आउटपुट

रोटेशन काउंट = 1

  1. - दुश्मन को हराने के लिए आवश्यक न्यूनतम ऑपरेशन्स की संख्या ज्ञात करने का C++ प्रोग्राम

    मान लीजिए हम एक वीडियो गेम खेल रहे हैं जहाँ नायक चाकू से दुश्मनों को हराता है। नायक चाकू से दुश्मन पर वार कर सकता है या उसे फेंक सकता है। यदि नायक चाकू फेंकता है, तो उसे वापस नहीं पाया जा सकता। चाकू i द्वारा पहुँचाई गई क्षति knives सरणी में दी गई है जहाँ प्रत्येक तत्व {slash, throw} प्रारूप में है।

  1. - C++ में सरणी से पहला स्ट्रिंग जिसका उल्टा भी उसी सरणी में मौजूद हो

    समस्या विवरण इस समस्या में, हमें आकार N की स्ट्रिंग सरणी str[] दी गई है। हमारा कार्य दिए गए सरणी से पहला स्ट्रिंग खोजने के लिए एक प्रोग्राम बनाना है जिसका उल्टा भी उसी सरणी में मौजूद हो। उदाहरण इनपुट: str[] = [python, program, C#, language, #C] आउटपुट: C# हल का दृष्टिकोण विधि 1: नेस्टेड लूप (O(N

  1. C++ में प्रतिद्वंद्वी को पकड़ने के लिए आवश्यक न्यूनतम चरणों की संख्या ढूंढने का प्रोग्राम C++ में प्रतिद्वंद्वी को पकड़ने के लिए आवश्यक न्यूनतम चरणों की संख्या ढूंढने का प्रोग्राम

    परिचय मान लीजिए हमारे पास ट्री एजेज की एक सूची है [u, v] के रूप में, जो इंगित करती है कि u और v के बीच एक अनडायरेक्टेड एज है। और हमारे पास दो मान x और y भी हैं। यदि हम नोड x पर हैं, और हमारा प्रतिद्वंद्वी नोड y पर है। पहले राउंड में हम चलते हैं, फिर अगले राउंड में प्रतिद्वंद्वी चलता है और इसी तरह।