837. 回文子串
给定一个字符串,你的任务是数出有多少个回文子串在这个字符串内。
一个子串不同于其他的子串,当且仅当开始和结束位置不同。
样例
样例1
输入: "abc"
输出: 3
解释:
3个回文字符串: "a", "b", "c".
样例2
输入: "aba"
输出: 4
解释:
4个回文字符串: "a", "b", "a", "aba".
注意事项
输入的字符串长度不会超过1,000
public class Solution {
/**
* @param str: s string
* @return: return an integer, denote the number of the palindromic substrings
*/
public int countPalindromicSubstrings(String str) {
// write your code here
int ret = str.length();
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
for (int j = i + 1; j < chars.length; j++) {
if (chars[i] == chars[j]) {
if (isRe(chars, i, j)) {
ret++;
}
}
}
}
return ret;
}
private boolean isRe(char[] chars, int i, int j) {
while (i < j) {
if (chars[i] != chars[j])return false;
i++;
j--;
}
return true;
}
}