August 13, 2022

Given two string s1 and s2 we have to find that whether the first string is rotation of another string.

Example:

input: s1:XXYZ  s2:XYZX
output:both string are rotation of each other

input: s1:xysds s2:psdwd
output:both string are not rotation of each other.

Logic:

Step 1: create a temporaray string .
step 2: assign the value ,temp_string= string1+string1;
step 3:here we will use find function of string to check whether string2 is present in temp string or not.
step 4:if it is present then it is rotation of eacg other.
# include <bits/stdc++.h> 
using namespace std; 
int main() 
{ 
string s1 = "MMNP", s2 = "MNPM"; 
if(s1.length()!=s2.length())
{
   cout<<"string are not rotation of each other"<<endl;
}
else
{
    string s3=s1+s1;
    if(s3.find(s2)!=string::npos)//here we are checking in s3 ,is s2 present or not 
    {
        cout<<"string are rotation of each other"<<endl;
    }
    else
    {
        cout<<"string are not rotation of each other"<<endl;
    }
}

} 

Output:

string are rotation of each other

Time Complexity:O(N)

space complexity:O(N)

Leave a Reply

Your email address will not be published.