Palindromic Substrings

Posted: 15 Jul, 2020
Difficulty: Moderate


Try Problem

You have been given a string STR. Your task is to find the total number of palindromic substrings of STR.

Example :
If the input string is "abbc", then all the possible palindromic substrings would be: ["a", "b", "b", c", "bb"] and hence, the output will be 5 since we have 5 substrings in total which form a palindrome.
Note :
A string is said to be a 'Palindrome' if it is read the same forwards and backwards. 
For example, “abba” is a palindrome, but “abbc” is not.

A 'Substring' is a contiguous sequence of characters within a string. 
For example, "a", "b", "c", "ab", "bc", "abc" are substrings of "abc".
Input format :
The first line contains an integer 't' which denotes the number of test cases or queries to be run. Then the test cases follow.

The first and only line of each test case contains the string STR for which you have to count the number of palindromic substrings.
Output Format :
For each test case, return the total number of palindromic substrings possible.

Output for each test case will be printed in a separate line.
You are not required to print anything, it has already been taken care of. Just implement the function.
Constraints :
1 <= t <= 100
0 <= N <= 1000

Where 't' is the number of test cases, 'N' is the length of the given string.
Time Limit: 1 sec.
Approach 1
  1. Initialize a count variable with 0 to keep track of the number of palindromic substrings.
  2. Let n be the length of the input string. Run a double nested loop. The outer loop will go from i = 0 to i = n - 1, and the inner loop will go from j = i to j = n - 1. i and j denote the start and end indices of a substring in the input string.
  3. Check whether the substring from index i to j forms a palindrome.
    • If it does, increase the count by 1 and move to the next iteration.
    • If it doesn't, move to the next iteration.
  4. Return the count.
Try Problem