作者热门文章
- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
给你一个字符串 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;
}
我是一名优秀的程序员,十分优秀!