PHP | Program to check a string is a rotation of another string

Given the two strings we have to check if one string is a rotation of another string.

Examples:

Input : $string1 = "WayToCrack",
        $string2 = "CrackWayTo";
Output : Yes

Input : $string1 = "WillPower" 
        $string2 = "lliW";
Output : No.

The above problem can be easily solved in other languages by concatenating the two strings and then would check if the resultant concatenated string contains the string or not. But in PHP we will use an inbuilt function to solve the problem. The inbuilt functions used are:

  • strpos(): The function generally accepts the two parameters first one to specify the string to be searched and the other one to find in the specified string.

In PHP solution strpos() will give the last position of string if found in the specified string.

Below is the implementation of above approach

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
    function rotation_string($string1, $string2)
    {
        // if both strings are not same length then stop
        if (strlen($string1) != strlen($string2))
           echo "No";
           
         // concatenate $string1 to itsel, if both
         // strings are of same length
         if (strlen($string1) == strlen($string2))
            $string1 = $string1.$string1;
            
         if (strpos($string1, $string2) > 0)
            echo "Yes";
         else 
            echo "No";
    }
  
    // Driver code
    $string1 = "WayToCrack";
    $string2 = "CrackWayTo";        
    rotation_string($string1, $string2);
?>

chevron_right


Output:

Yes


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.