C++ program to find string with palindrome substring whose length is at most k


Suppose we have two numbers n and k. Let we are trying to generate a string S with only three types of characters 'a', 'b' and 'c'. The maximum length of a substring of the string S that is a palindrome which does not exceeds k.

So, if the input is like n = 3; k = 2, then the output will be "aab", because its length is 3 and the palindrome substring is "aa" with length at least 2. (other answers are also possible).

Steps

To solve this, we will follow these steps −

S := a blank string
j := 0
for initialize i := 0, when i < n, update (increase i by 1), do:
   S := S concatenate (j + ASCII of 'a') as character
   j := (j + 1) mod 3
return S

Example

Let us see the following implementation to get better understanding −

#include <bits/stdc++.h>
using namespace std;

string solve(int n, int k) {
   string S = "";
   int j = 0;
   for (int i = 0; i < n; i++) {
      S += j + 'a';
      j = (j + 1) % 3;
   }
   return S;
}
int main() {
   int n = 3;
   int k = 2;
   cout << solve(n, k) << endl;
}

Input

3, 2

Output

abc

Updated on: 04-Mar-2022

187 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements