TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

Program to Determine Whether One String is a Rotation of Another

Program to Determine Whether One String is a Rotation of Another on fibonacci, factorial, prime, armstrong, swap, reverse, search, sort, stack, queue, array, linkedlist, tree, graph, pattern, string etc.

<< Back to PROGRAM

Program to determine whether one string is a rotation of another

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.

Solution

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

Next Topic#




Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf