Wednesday, August 24, 2022

Palindromic Substrings

 This Article is for self practice


Given a string s, return the number of palindromic substrings in it.

A string is a palindrome when it reads the same backward as forward.

substring is a contiguous sequence of characters within the string.

 

Example 1:

Input: s = "abc"
Output: 3
Explanation: Three palindromic strings: "a", "b", "c".

Example 2:

Input: s = "aaa"
Output: 6
Explanation: Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".

 

Constraints:

  • 1 <= s.length <= 1000
  • s consists of lowercase English letters.
package practice;

public class PalindromicString {

public static void main(String[] args) {

/*

Input: s = "aaa"
Output: 6
Explanation: Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".
* */

PalindromicString ps = new PalindromicString();

String s = "aaa";

System.out.println(ps.countSubstrings(s));

}


public int countSubstrings(String s) {
int ans = 0;

for (int i = 0; i < s.length(); i++) {

//odd digit palindrome
ans = ans + findPalindrome(s, i, i);

//even digit palindtrome
ans = ans + findPalindrome(s, i, i + 1);
}

return ans;
}


int findPalindrome(String s, int l, int h) {
int ans = 0;
while (l >= 0 && h < s.length()) {
if (s.charAt(l) != s.charAt(h)) {
break;
}
l--;
h++;
ans++;
}
return ans;
}
}

No comments:

Post a Comment