Generate a String of having N*N distinct non-palindromic Substrings
Given an even integer N, the task is to construct a string such that the total number of distinct substrings of that string that are not a palindrome equals N2.
Input: N = 2
All the distinct non-palindromic substrings are ab, abb, aab and aabb.
Therefore, the count of non-palindromic substrings is 4 = 2 2
Input: N = 4
All distinct non-palindromic substrings of the string are cz, czz, czzz, czzzz, ccz, cczz, cczzz, cczzzz, cccz, ccczz, ccczzz, ccczzzz, ccccz, cccczz, cccczzz, cccczzzz.
The count of non-palindromic substrings is 16.
It can be observed that, if the first N characters of a string are the same, followed by N identical characters different from the first N characters, then the count of distinct non-palindromic substrings will be N2.
N = 3
str = “aaabbb”
The string can be split into two substrings of N characters each: “aaa” and “bbb”
The first character ‘a’ from the first substring forms N distinct non-palindromic substrings “ab”, “abb”, “abbb” with the second substring.
Similarly, first two characters “aa” forms N distinct non-palindromic substrings “aab”, “aabb”, “aabbb”.
Similarly, remaining N – 2 characters of the first substring each form N distinct non-palindromic substrings as well.
Therefore, the total number of distinct non-palindromic substrings is equal to N2.
Therefore, to solve the problem, print ‘a’ as the first N characters of the string and ‘b’ as the next N characters of the string.
Below is the implementation of the above approach:
Time Complexity: O(N)
Auxiliary Space: O(1)