Construya una string de longitud L tal que cada substring de longitud X tenga exactamente Y letras distintas

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>
Producción: 

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

Deja una respuesta

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