Construct a string of length L such that each substring of length X has exactly Y distinct letters

Given the length of the string l, the length of the substring x and the number of distinct characters that a substring of length x must have are y, the task is to find a string of length l in which every substring of length x has y distinct characters.

Examples:

Input: l = 6, x = 5, y = 3
Output: abcabc
Explanation:
If we take a substring of the first five characters then the substring will be “abcab”.
There are exactly three distinct characters (a, b, c) in the substring.
Similarly, if we take any substring from the string of length 5 then it will have
exactly 3 distinct characters.

Input: l = 3, x = 1, y = 1
Output: aaa
Explanation:
If we take the substring of length 1 then it will have exactly 1 distinct character in it.

Approach:



To solve the problem mentioned above we follow the steps given below:

Below is the implementation of the above approach:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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)
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 
chevron_right

Output:
abcabc




Article Tags :
Practice Tags :