Open In App

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

Last Updated : 16 Nov, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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: 
 

  • Initialize a variable p as 97 which marks the ASCII value of lower case letter ‘a’.
  • Keep incrementing the value of p till y characters.
  • Then repeat the character from the first character till it’s length become equal to length of given string and return the final string.

Below is the implementation of the above approach: 
 

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>


Output: 

abcabc

 

Time Complexity: O(l)

Auxiliary Space: O(1)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads