给定一个字符串s,你的任务是计算这个字符串中有多少个回文子串。
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。
例:
输入:输入:“bbb”
输出:6
解释:6个回文子串: “b”, “b”, “b”, “bb”, “bb”, “bbb”
题解(一):动态规划,构造动态规划函数 F(x,y)记录字符串s第x-1个字符到第y-1个构成的子字符串是否为回文字符串。进行动态规划时,通过遍历字符串s,从找长度为1的回文子串开始,逐次增长回文字串长度进行回文字符串的判断。
class Solution {
public int countSubstrings(String s) {
int res=0;
int len=s.length();
boolean[][]dp=new boolean[len][len];
for(int i=0;i<len;i++)
for(int k=0;k+i<len;k++){
if(i==0) {
dp[k][k + i] = true;
res++;
}
else{
if