给你一个字符串 s ,请你统计并返回这个字符串中回文子串的数目。
回文字符串是正着读和倒过来读一样的字符串。
子字符串是字符串中的由连续字符组成的一个序列。
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。
示例 1:
输入:s = “abc”
输出:3
解释:三个回文子串: “a”, “b”, “c”
示例 2:
输入:s = “aaa”
输出:6
解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”
提示:
1 <= s.length <= 1000
s 由小写英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/palindromic-substrings
(1)中心拓展
思路参考本题官方题解。
//思路1————中心拓展
public int countSubstrings(String s) {
int length = s.length();
int res = 0;
for (int i = 0; i < 2 * length - 1; i++) {
int left = i / 2;
int right = i / 2 + i % 2;
while (left >= 0 && right < length && s.charAt(left) == s.charAt(right)) {
left--;
right++;
res++;
}
}
return res;
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_43004044/article/details/124979183
内容来源于网络,如有侵权,请联系作者删除!