Tutorials  Articles  Notifications  Login  Signup


DG

Dhirendra Gupta

Student at BIT Mesra July 27, 2020, 3:11 p.m. ⋅ 1191 views

Check if strings are rotations of each other or not


Given a string s1 and another string s2 your task is to check if s2 is rotation of s1 or not. Print Yes, if it is a rotation otherwise print No.

Example

s1 = "ABCD"

s2 = "CDAB"

Output

Yes

Example 2

s1 = "ABCD"

s2 = "ACDB"

Output

No

Solution

In order to check if any given string is rotation or not, we can simply append our current string to itself again and check if the given string is substring of this appended string or not.

So, if we were to solve above example it would be like this:

tempString = s1 + s1

so, tempString would become, "ABCDABCD"

Now, since, s2 = "CDAB" is a substring of tempString we will print Yes. While, s2 = "ACDB" is not a substring of tempString, we'll print No.

Let's implement this approach.

 

// C++ program to check if two given strings are rotations of  each other 

#include <bits/stdc++.h> 
using namespace std; 

int main() 
{ 
    string str1 = "ABCD", str2 = "CDAB"; 


    if (str1.length() != str2.length())
    {
        
	    cout<<"No";
    }

    else 
    {
        string temp = str1 + str1; 
        if (temp.find(str2) != string::npos)
        {
            cout<<"Yes";
        }
        else
        {
            cout<<"No";
        }
        
    }

return 0; 
} 
Yes

 



HackerFriend Logo

Join the community of 1 Lakh+ Developers

Create a free account and get access to tutorials, jobs, hackathons, developer events and neatly written articles.


Create a free account