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