समस्या कथन
एक स्ट्रिंग दी गई है, हमें समान स्ट्रिंग प्राप्त करने के लिए आवश्यक न्यूनतम रोटेशन की संख्या ज्ञात करनी है
उदाहरण
यदि इनपुट स्ट्रिंग "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