πDay 6. Palindrome SubStrings π§
The problem can be found at the following link: Question Link
π‘ Problem Description:
Given a string s, count all palindromic substrings present in the string where the length of each palindromic substring is greater than or equal to 2.
π Example Walkthrough:
Example 1
Input:
s = "abaab"Output:
3Explanation:
All palindromic substrings are: "aba", "aa", and "baab".
Example 2
Input:
s = "aaa"Output:
Explanation:
All palindromic substrings are: "aa", "aa", and "aaa".
Example 3
Input:
Output:
Explanation:
All palindromic substrings are: "bb", "abba", "aea", and "eae".
Constraints
$( 2 \leq \text{length}(s) \leq 10^3 )$
String contains only lowercase English characters.
π― My Approach:
Dynamic Programming (DP) (O(NΒ²) Time, O(NΒ²) Space)
We use a 2D boolean DP array
dp[i][j]to indicate whether the substrings[i..j]is a palindrome.Base cases: Every single character is trivially a palindrome (we won't count single-character palindromes as per problem statement).
We fill the DP table in a manner that checks if the characters at both ends match and if the inside substring is also a palindrome.
Whenever we find
dp[i][j] = trueand(j - i + 1) >= 2, we increment our palindrome count.Return the final count of palindromic substrings of length >= 2.
Algorithm Steps
Create a 2D array
dp[n][n], initialized tofalse, wherenis the length ofs.Traverse the string in reverse order for the starting index
i(fromn-1down to0).Set
dp[i][i] = truefor alli(single-character palindromes, though not counted, are needed to build multi-character palindromes).For each
i, iteratejfromi+1ton-1:If
s[i] == s[j]and the substring in-between is a palindrome (orj - i == 1for adjacent chars), setdp[i][j] = true.If
dp[i][j]istrue, increment the count.
The result is the total count of palindromic substrings of length β₯ 2.
π Time and Auxiliary Space Complexity
Expected Time Complexity: O(NΒ²), where N is the length of the string. We have nested loops iterating through the string to fill the DP table.
Expected Auxiliary Space Complexity: O(NΒ²), for maintaining the 2D DP table.
π Solution Code
Code (C++)
Code (Java)
Code (Python)
Note: Single-character palindromes are not counted as per problem statement. All approaches shown ensure only palindromes of length β₯ 2 are incremented.
π― Contribution and Support:
For discussions, questions, or doubts related to this solution, feel free to connect on LinkedIn: Any Questions. Letβs make this learning journey more collaborative!
β If you find this helpful, please give this repository a star! β
πVisitor Count
Last updated