题目描述:
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。
示例:
输入:"abc"
输出:3
解释:三个回文子串: "a", "b", "c"
Java代码:
class Solution {
public int countSubstrings(String s) {
int n = s.length();
boolean[][] dp = new boolean[n][n];
int count = 0;
for(int j = 0;j < n;j++) {
for(int i = 0;i <= j;i++) {
if(s.charAt(j) == s.charAt(i))
if(dp[i][j] = i==j || j - i == 1 ||dp[i + 1][j - 1])
count++;
}
}
return count;
}
}
网友评论