Open In App

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

Last Updated : 03 Aug, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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 palindromic 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 palindromic behavior
        for (int i = 0; i < size / 2; i++) {
 
            if (subS.charAt(i)
                != subS.charAt(size - i - 1)) {
 
                // Non-palindromic behavior
                return false;
            }
        }
 
        // Palindromic 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
                // palindrome
                if (check(subString)) {
 
                    // Increment the count only if
                    // substring is palindrome
                    count++;
                }
            }
        }
 
        // Print and display the number of substrings that
        // are palindromic
        System.out.println(
            "No.of palindromic substrings in the given string are "
            + count);
    }
}


Output

No.of palindromic substrings in the given string are 15


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads