Dada la longitud de la string l , la longitud de la substring x y el número de caracteres distintos que debe tener una substring de longitud x son y, la tarea es encontrar una string de longitud l en la que cada substring de longitud x tenga y caracteres distintos.
Ejemplos:
Entrada: l = 6, x = 5, y = 3
Salida: abcabc
Explicación:
si tomamos una substring de los primeros cinco caracteres, la substring será «abcab».
Hay exactamente tres caracteres distintos (a, b, c) en la substring.
De manera similar, si tomamos cualquier substring de la string de longitud 5, tendrá
exactamente 3 caracteres distintos.
Entrada: l = 3, x = 1, y = 1
Salida: aaa
Explicación:
Si tomamos la substring de longitud 1, tendrá exactamente 1 carácter distinto.
Planteamiento:
Para resolver el problema mencionado anteriormente, seguimos los pasos que se detallan a continuación:
- Inicialice una variable p como 97 que marca el valor ASCII de la letra minúscula ‘a’.
- Siga incrementando el valor de p hasta y caracteres.
- Luego repita el carácter desde el primer carácter hasta que su longitud sea igual a la longitud de la string dada y devuelva la string final.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation to // construct a string of length L // such that each substring of length // X has exactly Y distinct letters. #include <iostream> using namespace std; void String(int l, int x, int y) { // Initialize p equal to the ASCII value of a int p = 97; // Iterate till the length of the string for(int j = 0; j < l ; j++) { char ans = (char)(p + (j % y)); cout << ans; } } // Driver code int main () { int l = 6; int x = 5; int y = 3; String(l, x, y) ; return 0; } // This code is contributed by AnkitRai01
Java
// Java implementation to // construct a string of length L // such that each substring of length // X has exactly Y distinct letters. public class GFG { static void string(int l, int x, int y){ // Initialize p equal to the ASCII value of a int p = 97; // Iterate till the length of the string for(int j = 0; j < l ; j++){ char ans = (char)(p + (j % y)); System.out.print(ans); } } // Driver code public static void main (String[] args) { int l = 6; int x = 5; int y = 3; string(l, x, y) ; } } // This code is contributed by AnkitRai01
Python3
# Python implementation to # construct a string of length L # such that each substring of length # X has exactly Y distinct letters. def String(l, x, y): # Initialize p equal to the ASCII value of a p = 97 # Iterate till the length of the string for j in range(l): ans = chr(p + j % y) print(ans, end ="") # Driver code l = 6 x = 5 y = 3 String(l, x, y)
C#
// C# implementation to // construct a string of length L // such that each substring of length // X has exactly Y distinct letters. using System; class GFG { static void String(int l, int x, int y) { // Initialize p equal to the ASCII value of a int p = 97; // Iterate till the length of the string for(int j = 0; j < l; j++) { char ans = (char)(p + (j % y)); Console.Write(ans); } } // Driver code public static void Main(string[] args) { int l = 6; int x = 5; int y = 3; String(l, x, y); } } // This code is contributed by AnkitRai01
Javascript
<script> // javascript implementation to // construct a string of length L // such that each substring of length // X has exactly Y distinct letters. function string(l , x , y){ // Initialize p equal to the ASCII value of a var p = 97; // Iterate till the length of the string for(var j = 0; j < l ; j++){ var ans = String.fromCharCode(p + (j % y)); document.write(ans); } } // Driver code var l = 6; var x = 5; var y = 3; string(l, x, y) ; // This code contributed by shikhasingrajput </script>
abcabc
Complejidad temporal: O(l)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por swarnima13shishodia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA