Given a string, the task is to find all the palindromic sub-strings from the given string.
In Set – 1, another approach has been already discussed and that consider only distinct sub-strings but in this equal sub-strings i.e. ll and ll are considered as two sub-strings, not one.
Input : hellolle
Output : 13
[h, e, l, ll, l, o, lol, lloll, ellolle, l, ll, l, e]
2) ll, ll – Note that these are two distinct sub-strings that only happen to be equal
3) lol and lloll
4) And, of course, each letter can be considered a palindrome – all 8 of them.
Input : geeksforgeeks
Output : 15
[g, e, ee, e, k, s, f, o, r, g, e, ee, e, k, s]
1- We can have two types of palindrome strings that we need to handle -Even Length -Odd Length
2- The idea is to consider a mid point and keep checking for the palindrome string by comparing the elements on the left and the elements on the right by increasing the distance or palindromeRadius by one at a time until there is a mismatch.
3- The algorithm handles the even and odd length palindrome scenarios in a single pass.
4- The pivot starts from 0 and moves till the end with a step size of 0.5.
…….a) when the pivot is a non-fractional value, then the palindromeRadius values are integral starting from 0.
…….b) when the pivot is a fractional value, then the palindromeRadius values are like 0.5, 1.5, 2.5, 3.5 ..
5- So, each time we get a palindrome match, we put it in a list (so that the duplicate values are preserved because each duplicate sub-string is obtained by a different combination of alphabet positions)
13 [h, e, l, ll, l, o, lol, lloll, ellolle, l, ll, l, e] 15 [g, e, ee, e, k, s, f, o, r, g, e, ee, e, k, s]
Note: To print distinct substrings, use Set as it only takes distinct elements.
Attention reader! Don’t stop learning now. Get hold of all the important Java and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.
- Lexicographically all Shortest Palindromic Substrings from a given string
- Minimum cuts required to convert a palindromic string to a different palindromic string
- Permutation of given string that maximizes count of Palindromic substrings
- Check if a Palindromic String can be formed by concatenating Substrings of two given Strings
- Check if a palindromic string can be obtained by concatenating substrings split from same indices of two given strings
- Count all Prime Length Palindromic Substrings
- Make palindromic string non-palindromic by rearranging its letters
- Generate a String of having N*N distinct non-palindromic Substrings
- Rearrange the string to maximize the number of palindromic substrings
- Check if a string can be split into even length palindromic substrings
- Lexicographically smallest permutation of a string that can be reduced to length K by removing K-length prefixes from palindromic substrings of length 2K
- Split string into three palindromic substrings with earliest possible cuts
- Longest Palindromic Substring using Palindromic Tree | Set 3
- Count of Palindromic substrings in an Index range
- Count of K-size substrings having palindromic permutations
- Generate a string whose all K-size substrings can be concatenated to form the given string
- Find all distinct palindromic sub-strings of a given string
- Find a palindromic string B such that given String A is a subsequense of B
- Lexicographically smallest permutation of a string that contains all substrings of another string
- Given a string, print all possible palindromic partitions
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.