๐ 647. ๅๆๅญไธฒ
2022ๅนด6ๆ9ๆฅๅฐไบ 1 ๅ้
๐ 647. ๅๆๅญไธฒ
้พๅบฆ: ๐
้ฎ้ขๆ่ฟฐ
่งฃๆณ
class Solution {
public int countSubstrings(String s) {
// ๆ่ทฏ๏ผ
// dp[i][j] = dp[i + 1][j - 1] + 1, [i] == [j]
int len = s.length();
int[][] dp = new int[len][len];
// ๅๅงๅ
int res = 0;
// dp
for(int i = len - 1; i >= 0; i --) {
for(int j = i; j < len; j ++) {
if(i == j) {
dp[i][j] = 1;
res ++;
} else if(i == j - 1) {
if(s.charAt(i) == s.charAt(j)) {
dp[i][j] = 2;
res ++;
}
} else {
// j - i >= 2
if(s.charAt(i) == s.charAt(j)) {
if(dp[i + 1][j - 1] > 0) {
// ่ฏดๆ้้ข็ๅญไธฒไนๆฏๅๆไธฒ
dp[i][j] = dp[i + 1][j - 1] + 2;
res ++;
}
}
}
}
}
return res;
}
}