0647. Palindromic Substrings
https://leetcode.com/problems/palindromic-substrings
Description
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.
A 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.
ac1: central expansion
same as https://leetcode.com/problems/longest-palindromic-substring
class Solution {
int count = 0;
public int countSubstrings(String s) {
// edge cases
// if (s.length() == 0) return 0;
for (int i = 0; i < s.length(); i++) {
expand(s, i, i);
expand(s, i, i+1);
}
return count;
}
private void expand(String s, int left, int right) {
while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
count++; // find one palindromic substring
left--;
right++;
}
}
}
Last updated
Was this helpful?