Java Program for Minimum rotations required to get the same string

Last Updated : 26 Dec, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Given a string, we need to find the minimum number of rotations required to get the same string. Examples:

Input : s = "geeks"
Output : 5

Input : s = "aaaa"
Output : 1

The idea is based on below post. A Program to check if strings are rotations of each other or not Step 1 : Initialize result = 0 (Here result is count of rotations) Step 2 : Take a temporary string equals to original string concatenated with itself. Step 3 : Now take the substring of temporary string of size same as original string starting from second character (or index 1). Step 4 : Increase the count. Step 5 : Check whether the substring becomes equal to original string. If yes, then break the loop. Else go to step 2 and repeat it from the next index. 

Java
// Java program to determine minimum number 
// of rotations required to yield same 
// string. 

import java.util.*; 

class GFG 
{ 
    // Returns count of rotations to get the 
    // same string back. 
    static int findRotations(String str) 
    { 
        // tmp is the concatenated string. 
        String tmp = str + str; 
        int n = str.length(); 
    
        for (int i = 1; i <= n; i++) 
        { 
    
            // substring from i index of original 
            // string size. 
            
            String substring = tmp.substring(
                      i, i+str.length()); 
    
            // if substring matches with original string 
            // then we will come out of the loop. 
            if (str.equals(substring)) 
                return i; 
        } 
        return n; 
    } 

    // Driver Method 
    public static void main(String[] args) 
    { 
            String str = "aaaa"; 
        System.out.println(findRotations(str)); 
    } 
} 
/* This code is contributed by Mr. Somesh Awasthi */

Output: 

3

Time Complexity: O(n2) Please refer complete article on Minimum rotations required to get the same string for more details!
Auxiliary Space: O(n), The extra space is used to store the copied string in tmp variable.


Next Article
Article Tags :
Practice Tags :

Similar Reads