Q:

Program to determine whether one string is a rotation of another

belongs to collection: String Programs

0

Explanation

In this program, we need to check whether a string is a rotation of another string or not.

String 1: abcde  

String 2 : deabc  

String 1 + String 1: abcdeabcde  

Consider above example, suppose we need to check whether string 2 is a rotation of string 1. To find this, we concatenate string 1 with string 1. Then, try to find the string 2 in concatenated string. If string 2 is present in concatenated string then, string 2 is rotation of string 1. String 2 deabc is found on the index 3 in concatenated string. So, deabc is rotation of abcde.

Algorithm

  1. Define two string 1 and string 2.
  2. To check whether string 2 is rotation of string 1 then, first check the length of both the strings. If they are not equal, then string 2 cannot be a rotation of string 1.
  3. Concatenate string 1 with itself and assign it to string 1.
  4. Check the index of string 2 in string 1. If it exists then, string 2 is a rotation of string 1.

Input:

str1 = "abcde"  

str2 = "deabc"  

Output:

Second string is a rotation of first string.

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Python

str1 = "abcde";  
str2 = "deabc";  
   
if(len(str1) != len(str2)):  
    print("Second string is not a rotation of first string");  
else:  
    try:  
        #Concatenate str1 with str1 and store it in str1  
        str1 = str1 + str1;  
          
        #Check whether str2 is present in str1  
        if(str1.index(str2)):  
            print("Second string is a rotation of first string");  
    except ValueError:  
            print("Second string is not a rotation of first string");  

 

Output:

Second string is a rotation of first string

 

C

#include <stdio.h>  
#include <string.h>  
   
int main()  
{  
    char str1[] = "abcde", str2[] = "deabc";  
          
    if(strlen(str1) != strlen(str2)){  
        printf("Second string is not a rotation of first string");  
    }  
    else{  
        //Concatenate str1 with str1 and store it in str1  
        strcat(str1, str1);  
          
        //Check whether str2 is present in str1  
        if(strstr(str1, str2) != NULL)  
            printf("Second string is a rotation of first string");  
        else  
            printf("Second string is not a rotation of first string");  
    }  
   
    return 0;  
}  

 

Output:

Second string is a rotation of first string

 

JAVA

public class StringRotation  
{  
    public static void main(String[] args) {  
        String str1 = "abcde", str2 = "deabc";  
          
        if(str1.length() != str2.length()){  
            System.out.println("Second string is not a rotation of first string");  
        }  
        else {  
            //Concatenate str1 with str1 and store it in str1  
            str1 = str1.concat(str1);  
              
            //Check whether str2 is present in str1  
            if(str1.indexOf(str2) != -1)  
                System.out.println("Second string is a rotation of first string");  
            else  
                System.out.println("Second string is not a rotation of first string");  
        }  
    }  
}  

 

Output:

Second string is a rotation of first string

 

C#

using System;  
                      
public class StringRotation  
{      
    public static void Main()  
    {  
        String str1 = "abcde", str2 = "deabc";  
          
        if(str1.Length != str2.Length){  
            Console.WriteLine("Second string is not a rotation of first string");  
        }  
        else {  
            //Concatenate str1 with str1 and store it in str1  
            str1 = String.Concat(str1, str1);  
              
            //Check whether str2 is present in str1  
            if(str1.IndexOf(str2) != -1)  
                Console.WriteLine("Second string is a rotation of first string");  
            else  
                Console.WriteLine("Second string is not a rotation of first string");  
        }  
    }  
}  

 

Output:

Second string is a rotation of first string

 

PHP

<!DOCTYPE html>  
<html>  
<body>  
<?php  
$str1 = "abcde";  
$str2 = "deabc";  
   
if(strlen($str1) != strlen($str2)){  
    print("Second string is not a rotation of first string");  
}  
else {  
    //Concatenate str1 with str1 and store it in str1  
    $str1 = $str1.$str1;  
      
    //Check whether str2 is present in str1  
    if(strpos($str1, $str2) != false)  
        print("Second string is a rotation of first string");  
    else  
        print("Second string is not a rotation of first string");  
}  
?>  
</body>  
</html>  

 

Output:

Second string is a rotation of first string

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

This question belongs to these collections

Similar questions


Program to find maximum and minimum occurring char... >>
<< Program to determine whether a given string is Pal...