Table of Contents
Given two strings s1 and s2, write a function to say whether s2 is a rotation of s1 or not
Example
INPUT
s1 = “ABCDE”
s2 = “DEABC”
OUTPUT
s1 and s2 are rotations of each other
If we rotate s2 we will get s1
Algorithm
1. Concatenate s1 with s1
2. Now, if s2 is a substring of above concatenation, then s1 and s2 are rotations of each other.
C++ Program
#include <bits/stdc++.h> #include <string> using namespace std; bool areRotations(string s1, string s2) { //Finding the length of s1 and s2 int length1 = s1.length(); int length2 = s2.length(); //comcatinating two strings string s3 = s1+s1; //find function returns the position of the substring //If it does not find any substring it returns npos if (s3.find(s2) != std::string::npos) { return true; } else { return false; } } int main() { string s1= "ABCDE"; string s2 = "DEABC"; if (areRotations(s1,s2)) { cout<<"Strings are rotations of each other"<<endl; } else { cout<<"Strings are not rotations of each other"<<endl; } }