ধরুন আমাদের দুটি স্ট্রিং s এবং t আছে। আমাদের পরীক্ষা করতে হবে যে s টি t এর ঘূর্ণন কিনা, অন্য কথায়, s ঘোরানোর পরে আমরা কি t পেতে পারি?
সুতরাং, যদি ইনপুট s ="helloworld" এবং t ="worldhello" এর মত হয়, তাহলে আউটপুট হবে True।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
যদি s0 এর আকার s1 এর আকারের সমান না হয়, তাহলে −
-
মিথ্যা ফেরত দিন
-
-
s :=s0 concatenate s0
-
s1 s-এ থাকলে true রিটার্ন করুন, অন্যথায় 0
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
#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"));
} ইনপুট
"helloworld", "worldhello"
আউটপুট
1