मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं। हमें जांचना है कि क्या s, t का रोटेशन है या नहीं, यानी क्या s को घुमाकर t प्राप्त किया जा सकता है?
उदाहरण के लिए, यदि इनपुट है s = "helloworld" और t = "worldhello", तो आउटपुट True होगा।
समाधान दृष्टिकोण
इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- यदि
sऔरtकी लंबाई समान नहीं है, तोfalseलौटाएं। sको स्वयं से जोड़कर एक नई स्ट्रिंग बनाएं:s = s + s।- जांचें कि क्या
tइस नई स्ट्रिंग में मौजूद है। यदि हां, तोtrueलौटाएं, अन्यथाfalse।
C++ कार्यान्वयन
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool solve(string s0, string s1) {
if (s0.size() != s1.size())
return false;
string s = s0 + s0;
return s.find(s1) != string::npos;
}
};
int main() {
Solution ob;
cout << (ob.solve("helloworld", "worldhello"));
return 0;
}
इनपुट
"helloworld", "worldhello"
आउटपुट
1