VOOZH about

URL: https://www.geeksforgeeks.org/dsa/number-string-length-n-no-palindromic-sub-string/

⇱ Number of strings of length N with no palindromic sub string - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Number of strings of length N with no palindromic sub string

Last Updated : 22 Nov, 2022

Given two positive integers N, M. The task is to find the number of strings of length N under the alphabet set of size M such that no substrings of size greater than 1 is palindromic.

Examples: 

Input : N = 2, M = 3
Output : 6
In this case, set of alphabet are 3, say {A, B, C}
All possible string of length 2, using 3 letters are:
{AA, AB, AC, BA, BB, BC, CA, CB, CC}
Out of these {AA, BB, CC} contain palindromic substring, 
so our answer will be 
8 - 2 = 6.

Input : N = 2, M = 2
Output : 2
Out of {AA, BB, AB, BA}, only {AB, BA} contain 
non-palindromic substrings.

First, observe, a string does not contain any palindromic substring if the string doesn't have any palindromic substring of the length 2 and 3, because all the palindromic string of the greater lengths contains at least one palindromic substring of the length of 2 or 3, basically in the center.

So, the following is true: 

  • There are M ways to choose the first symbol of the string.
  • Then there are (M - 1) ways to choose the second symbol of the string. Basically, it should not be equal to first one.
  • Then there are (M - 2) ways to choose any next symbol. Basically, it should not coincide with the previous symbols, that aren't equal.

Knowing this, we can evaluate the answer in the following ways: 

  • If N = 1, then the answer will be M.
  • If N = 2, then the answer is M*(M - 1).
  • If N >= 3, then M * (M - 1) * (M - 2)N-2.

Below is the implementation of above idea : 


Output
6

Time Complexity: O(log n), for using of pow function where n is the given input.
Auxiliary Space: O(1), no extra space is required, so it is a constant.

Comment
Article Tags: