Given two integers **N **and **K**. The task is to find the **string of length N**, such that each substring of length greater than equal to **K**, has exactly **K** distinct characters.

**Examples:**

Input:N=10, K=3Output :ABCABCABCAExplanation:The output string has 3 distinct characters.Input :N=20, K=7Output :ABCDEFGABCDEFGABCDEFExplanation:The output string has 7 distinct characters.

**Approach:**

To solve the problem mentioned above the main idea is to print distinct elements up to length **K**, and then repeat the same elements up to **N**.

Below is the implementation of the above approach:

## C++

`// C++ Program to Find the ` `// String having each substring ` `// with exactly K distinct characters ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to find the ` `// required output string ` `void` `findString(` `int` `N, ` `int` `K) ` `{ ` ` ` `// Each element at index ` ` ` `// i is modulus of K ` ` ` `for` `(` `int` `i = 0; i < N; i++) { ` ` ` ` ` `cout << ` `char` `(` `'A'` `+ i % K); ` ` ` `} ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `// initialise integers N and K ` ` ` `int` `N = 10; ` ` ` `int` `K = 3; ` ` ` ` ` `findString(N, K); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java program to find the ` `// string having each substring ` `// with exactly K distinct characters ` `import` `java.io.*; ` ` ` `class` `GFG { ` ` ` `// Function to find the ` `// required output string ` `static` `void` `findString(` `int` `N, ` `int` `K) ` `{ ` ` ` ` ` `// Each element at index ` ` ` `// i is modulus of K ` ` ` `for` `(` `int` `i = ` `0` `; i < N; i++) ` ` ` `{ ` ` ` `System.out.print((` `char` `)(` `'A'` `+ i % K)); ` ` ` `} ` `} ` ` ` `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` ` ` `// Initialise integers N and K ` ` ` `int` `N = ` `10` `; ` ` ` `int` `K = ` `3` `; ` ` ` `findString(N, K); ` `} ` `} ` ` ` `// This code is contributed by shivanisinghss2110` |

*chevron_right*

*filter_none*

## Python3

`# Python3 Program to Find the ` `# String having each substring ` `# with exactly K distinct characters ` ` ` `# Function to find the ` `# required output string ` `def` `findString(N, K) : ` ` ` `# Each element at index ` ` ` `# i is modulus of K ` ` ` `for` `i ` `in` `range` `(N) : ` ` ` ` ` `print` `(` `chr` `(` `ord` `(` `'A'` `) ` `+` `i ` `%` `K),end` `=` `""); ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` `# initialise integers N and K ` ` ` `N ` `=` `10` `; ` ` ` `K ` `=` `3` `; ` ` ` ` ` `findString(N, K); ` ` ` `# This code is contributed by AnkitRai01 ` |

*chevron_right*

*filter_none*

## C#

`// C# program to find the ` `// string having each substring ` `// with exactly K distinct characters ` `using` `System; ` ` ` `class` `GFG { ` ` ` `// Function to find the ` `// required output string ` `static` `void` `findString(` `int` `N, ` `int` `K) ` `{ ` ` ` ` ` `// Each element at index ` ` ` `// i is modulus of K ` ` ` `for` `(` `int` `i = 0; i < N; i++) ` ` ` `{ ` ` ` `Console.Write((` `char` `)(` `'A'` `+ i % K)); ` ` ` `} ` `} ` ` ` `// Driver code ` `public` `static` `void` `Main(String[] args) ` `{ ` ` ` ` ` `// Initialise integers N and K ` ` ` `int` `N = 10; ` ` ` `int` `K = 3; ` ` ` ` ` `findString(N, K); ` `} ` `} ` ` ` `// This code is contributed by 29AjayKumar ` |

*chevron_right*

*filter_none*

**Output:**

ABCABCABCA

**Time Complexity:**O(N)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.