Palindromic Substrings
Given a string, your task is to count how many palindromic substrings in this string.
The substrings with different start indexes or end indexes are counted as different substrings even they consist of same characters.
Example
Example 1:
Input:
"abc"
Output:
3
Explanation:
Three palindromic strings: "a", "b", "c".
Example 2:
Input:
"aaa"
Output:
6
Explanation:
Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".
Note
一个O(n^2)的解法
中心扩散法
Code
class Solution {
int count = 0;
public int countSubstrings(String s) {
if (s == null || s.length() == 0) return 0;
for (int i = 0; i < s.length(); i++) {
helper(s, i, i);
helper(s, i, i + 1);
}
return count;
}
private void helper(String s,
int left, int right) {
while (left >= 0 && right < s.length() &&
s.charAt(left) == s.charAt(right)) {
count++;
left--;
right++;
}
}
}
Last updated