Generar todas las rotaciones de una string dada

Dada una string S. La tarea es imprimir todas las posibles strings rotadas de la string dada.

Ejemplos: 

C++

// A simple C++ program to generate all rotations
// of a given string
#include<bits/stdc++.h>
using namespace std;
 
// Print all the rotated string.
void printRotatedString(char str[])
{
    int len = strlen(str);
 
    // Generate all rotations one by one and print
    char temp[len];
    for (int i = 0; i < len; i++)
    {
        int j = i;  // Current index in str
        int k = 0;  // Current index in temp
 
        // Copying the second part from the point
        // of rotation.
        while (str[j] != '\0')
        {
            temp[k] = str[j];
            k++;
            j++;
        }
 
        // Copying the first part from the point
        // of rotation.
        j = 0;
        while (j < i)
        {
            temp[k] = str[j];
            j++;
            k++;
        }
 
        printf("%s\n", temp);
    }
}
 
// Driven Program
int main()
{
    char str[] = "geeks";
    printRotatedString(str);
    return 0;
}

Java

// A simple Java program to generate all rotations
// of a given string   
 
class Test
{
    // Print all the rotated string.
    static void printRotatedString(String str)
    {
        int len = str.length();
      
        // Generate all rotations one by one and print
        StringBuffer sb;
         
        for (int i = 0; i < len; i++)
        {
            sb = new StringBuffer();
             
            int j = i;  // Current index in str
            int k = 0;  // Current index in temp
      
            // Copying the second part from the point
            // of rotation.
            for (int k2 = j; k2 < str.length(); k2++) {
                sb.insert(k, str.charAt(j));
                k++;
                j++;
            }
      
            // Copying the first part from the point
            // of rotation.
            j = 0;
            while (j < i)
            {
                sb.insert(k, str.charAt(j));
                j++;
                k++;
            }
      
            System.out.println(sb);
        }
    }
     
    // Driver method
    public static void main(String[] args)
    {
        String  str = new String("geeks");
        printRotatedString(str);
    }
}

Python3

# A simple Python3 program to generate
# all rotations of a given string
 
# Print all the rotated strings.
def printRotatedString(str):
 
    lenn = len(str)
 
    # Generate all rotations
    # one by one and print
    temp = [0] * (lenn)
    for i in range(lenn):    
        j = i # Current index in str
        k = 0 # Current index in temp
 
        # Copying the second part from
        # the point of rotation.
        while (j < len(str)):
         
            temp[k] = str[j]
            k += 1
            j += 1
         
 
        # Copying the first part from
        # the point of rotation.
        j = 0
        while (j < i) :
         
            temp[k] = str[j]
            j += 1
            k += 1
         
 
        print(*temp, sep = "")
     
# Driver Code
if __name__ == '__main__':
    str = "geeks"
    printRotatedString(str)
     
# This code is contributed
# by SHUBHAMSINGH10

C#

// A simple C# program to generate
// all rotations of a given string    
using System;
using System.Text;
 
class GFG
{
// Print all the rotated string.
public static void printRotatedString(string str)
{
    int len = str.Length;
 
    // Generate all rotations one
    // by one and print
    StringBuilder sb;
 
    for (int i = 0; i < len; i++)
    {
        sb = new StringBuilder();
 
        int j = i; // Current index in str
        int k = 0; // Current index in temp
 
        // Copying the second part from
        // the point of rotation.
        for (int k2 = j; k2 < str.Length; k2++)
        {
            sb.Insert(k, str[j]);
            k++;
            j++;
        }
 
        // Copying the first part from
        // the point of rotation.
        j = 0;
        while (j < i)
        {
            sb.Insert(k, str[j]);
            j++;
            k++;
        }
 
        Console.WriteLine(sb);
    }
}
 
// Driver Code
public static void Main(string[] args)
{
    string str = "geeks";
    printRotatedString(str);
}
}
 
// This code is contributed
// by Shrikant13

PHP

<?php
// A simple PHP program to generate
// all rotations of a given string
 
// Print all the rotated string.
function printRotatedString($str)
{
    $len = strlen($str);
 
    // Generate all rotations one
    // by one and print
    $temp = " ";
    for ($i = 0; $i < $len; $i++)
    {
        $j = $i; // Current index in str
        $k = 0;  // Current index in temp
 
        // Copying the second part from
        // the point of rotation.
        while ($j < $len)
        {
            $temp[$k] = $str[$j];
            $k++;
            $j++;
        }
 
        // Copying the first part from
        // the point of rotation.
        $j = 0;
        while ($j < $i)
        {
            $temp[$k] = $str[$j];
            $j++;
            $k++;
        }
 
        echo $temp . "\n";
    }
}
 
// Driver Code
$str = "geeks";
printRotatedString($str);
 
// This code is contributed
// by Akanksha Rai
?>

Javascript

<script>
 
// A simple javascript program to generate
// all rotations of a given string   
 
// Print all the rotated string.
function printRotatedString(str)
{
    var len = str.length;
  
    // Generate all rotations one
    // by one and print
    var sb;
     
    for(i = 0; i < len; i++)
    {
        sb = [];
         
        // Current index in str
        var j = i;
         
        // Current index in temp
        var k = 0; 
  
        // Copying the second part from the point
        // of rotation.
        for(k2 = j; k2 < str.length; k2++)
        {
            sb.push(str.charAt(j));
            k++;
            j++;
        }
  
        // Copying the first part from the point
        // of rotation.
        j = 0;
         
        while (j < i)
        {
            sb.push(str.charAt(j));
            j++;
            k++;
        }
        document.write(sb.join("") + "<br>");
    }
}
 
// Driver code
var  str = "geeks";
printRotatedString(str);
 
// This code is contributed by Amit Katiyar
 
</script>

C++

// An efficient C++ program to print all
// rotations of a string.
#include<bits/stdc++.h>
using namespace std;
 
// Print all the rotated string.
void printRotatedString(char str[])
{
    int n = strlen(str);
 
    // Concatenate str with itself
    char temp[2*n + 1];
    strcpy(temp, str);
    strcat(temp, str);
 
    // Print all substrings of size n.
    // Note that size of temp is 2n
    for (int i = 0; i < n; i++)
    {
        for (int j=0; j != n; j++)
            printf("%c",temp[i + j]);
        printf("\n");
    }
}
 
// Driven Program
int main()
{
    char str[] = "geeks";
    printRotatedString(str);
    return 0;
}

Java

// A simple Java program to generate all rotations
// of a given string   
 
class Test
{
    // Print all the rotated string.
    static void printRotatedString(String str)
    {
        int n = str.length();
       
        StringBuffer sb = new StringBuffer(str);
        // Concatenate str with itself
        sb.append(str);
      
        // Print all substrings of size n.
        // Note that size of sb is 2n
        for (int i = 0; i < n; i++)
        {
            for (int j=0; j != n; j++)
                System.out.print(sb.charAt(i + j));
            System.out.println();
        }
    }
     
    // Driver method
    public static void main(String[] args)
    {
        String  str = new String("geeks");
        printRotatedString(str);
    }
}

Python3

# An efficient Python3 program to print 
# all rotations of a string.
 
# Print all the rotated string.
def printRotatedString(string) :
     
    n = len(string)
 
    # Concatenate str with itself
    temp = string + string
 
    # Print all substrings of size n.
    # Note that size of temp is 2n
    for i in range(n) :
         
        for j in range(n) :
            print(temp[i + j], end = "")
             
        print()
 
# Driver Code
if __name__ == "__main__" :
 
    string = "geeks"
    printRotatedString(string)
 
# This code is contributed by Ryuga

C#

// A simple C# program to generate all rotations
// of a given string
using System;
using System.Text;
 
class Test
{
     
    // Print all the rotated string.
    static void printRotatedString(String str)
    {
        int n = str.Length;
     
        StringBuilder sb = new StringBuilder(str);
        // Concatenate str with itself
        sb.Append(str);
     
        // Print all substrings of size n.
        // Note that size of sb is 2n
        for (int i = 0; i < n; i++)
        {
            for (int j=0; j != n; j++)
                Console.Write(sb[i + j]);
            Console.WriteLine();
        }
    }
     
    // Driver method
    public static void Main(String[] args)
    {
        String str = "geeks";
        printRotatedString(str);
    }
}

PHP

<?php
// An efficient PHP program to print all
// rotations of a string.
 
// Print all the rotated string.
function printRotatedString($str)
{
    $n = strlen($str);
 
    // Concatenate str with itself
    $temp=$str.$str;
 
    // Print all substrings of size n.
    // Note that size of temp is 2n
    for ($i = 0; $i < $n; $i++)
    {
        for ($j = 0; $j != $n; $j++)
            print($temp[$i + $j]);
        print("\n");
    }
}
 
    // Driver code
    $str = "geeks";
    printRotatedString($str);
     
// This code is contributed by mits
?>

Javascript

<script>
// A simple javascript program to generate all rotations
// of a given string   
 
    // Print all the rotated string.
    function printRotatedString(str)
    {
        var n = str.length;     
        var sb = str;
         
        // Concatenate str with itself
        sb += (str);
      
        // Print all substrings of size n.
        // Note that size of sb is 2n
        for (var i = 0; i < n; i++)
        {
            for (var j = 0; j != n; j++)
                document.write(sb.charAt(i + j));
            document.write('<br>');
        }
    }
     
    // Driver method
    var  str = "geeks";
    printRotatedString(str);
     
// This code is contributed by 29AjayKumar
</script>

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *