এখানে আমরা একটি প্রোগ্রাম দেখব যা বলবে দুটি স্ট্রিং একে অপরের রোটেশন কিনা। স্ট্রিং রোটেশন হলো −
ধরা যাক দুটি স্ট্রিং S1 = 'HELLO', এবং S2 = 'LOHEL'। তারা একে অপরের রোটেশন। HELLO-ს তিন পজিশন বামে রোটেট করলে LOHEL হবে।
এই সমস্যাটি সমাধানের জন্য প্রথম স্ট্রিংকে নিজের সাথে কনক্যাটেনেট করব, তারপর চেক করব দ্বিতীয় স্ট্রিংটি কনক্যাটেনেটেড স্ট্রিংয়ে আছে কিনা। তাই HELLO-এর জন্য হবে HELLOHELLO। এই কনক্যাটেনেটেড স্ট্রিংটি LOHEL কন্টেইন করে। [HELLOHELLO]。
অ্যালগরিদম
isRotation(str1, str2)
begin if lengths of str1, and str2 are not same then return false; temp := concatenate str1 with str1 itself if temp contains str2, then return true otherwise return false end
উদাহরণ
#includeusing namespace std; bool isRotation(string str1, string str2){ if(str1.length() != str2.length()) return false; string con_str = str1 + str1; if(con_str.find(str2) != string::npos){ return true; } else { return false; } } main() { string str1, str2; cout << "Enter two strings: "; cin >> str1 >> str2; if(isRotation(str1, str2)){ cout << "Two strings are rotation of each other"; } else { cout << "Two strings are not rotation of each other"; } }
আউটপুট
Enter two strings: STACK CKSTA Two strings are rotation of each other