LeetCode_字符串_中等_647. 回文子串

目录

  • 1.题目
  • 2.思路
  • 3.代码实现(Java)

1.题目

给你一个字符串 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

2.思路

(1)中心拓展
思路参考本题官方题解。

3.代码实现(Java)

//思路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;
}

你可能感兴趣的:(LeetCode算法刷题,leetcode,字符串)