给定一个字符串,返回这个字符串中有多少个回文子串。
两个相同的回文子串出现在不同的位置,认为是2个回文子串。
a、aa、aaa、aba、aabaa、abcba均认为是回文子串。
中心扩展算法
import java.util.*; public class Solution { /** * * @param str string字符串 * @return int整型 */ public int palindromeCount (String str) { int ans = 0; for (int center = 0; center < str.length(); center++) { ans += expand(str, center, center) + expand(str, center, center + 1); } return ans; } private int expand(String str, int left, int right) { int ans = 0; while (left >= 0 && right < str.length() && str.charAt(left) == str.charAt(right)) { ans++; left--; right++; } return ans; } }