Skip to content
Related Articles

Related Articles

Improve Article

Java Program to Find All Palindromic Sub-Strings of a String

  • Last Updated : 21 Apr, 2021

Given a string, the task is to count all palindrome substring in a given string.

Input        : aba
Output       : 4
Explanation  : All palindrome substring are : "aba" , "a" , "b", "a"

Input        : TENET
Output       : 7
Explanation  : All palindrome sub-string are : "T" , "E" , "N", "E", "T" , "ENE" , "TENET"

Approach:

  1. Take the substrings from the given string.
  2. Now check whether the substring is Palindrome or not.
  3. If the substring is Palindrome increment the count by 1 else if not count is not incremented.
  4. Return the count as it represents the number of substrings.
  5. Print and display on the console.

Example:

Java




// Java Program to Find all palindromic sub-strings 
// of a given string
  
// Importing input output classes
import java.io.*;
  
// Main class
// To check for pallindromic sub-strings
public class GFG {
  
    // Method 1
    // To check for substring
    public static boolean check(String subS)
    {
        int size = subS.length();
  
        // Iterating over string till midway to
        // check pallindromic behavior
        for (int i = 0; i < size / 2; i++) {
  
            if (subS.charAt(i)
                != subS.charAt(size - i - 1)) {
  
                // Non-pallindromic behavior
                return false;
            }
        }
  
        // Pallindromic behavior
        return true;
    }
  
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
  
        // Custom input string
        String str = "MALAYALAM";
  
        int count = 0;
  
        // Outer loop iterating over input string
        for (int i = 0; i < str.length(); i++) {
  
            // Inner loop iterating from current starting
            // character of outer loop current starting
            // character
            for (int j = i; j < str.length(); j++) {
  
                // Getting the substrings
                String subString = str.substring(i, j + 1);
  
                // Checking whether the substring is
                // pallindrome
                if (check(subString)) {
  
                    // Increment the count only if
                    // substring is pallindrome
                    count++;
                }
            }
        }
  
        // Print and display the number of substrings that
        // are pallindromic
        System.out.println(
            "No.of palindromic substrings in the given string are "
            + count);
    }
}
Output
No.of palindromic substrings in the given string are 15

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :