# 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.

## 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.

### 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#