欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > LeetCode 热题 HOT 100 (023/100)【宇宙最简单版】

LeetCode 热题 HOT 100 (023/100)【宇宙最简单版】

2024/10/24 10:18:48 来源:https://blog.csdn.net/CODE_RabbitV/article/details/141073027  浏览:    关键词:LeetCode 热题 HOT 100 (023/100)【宇宙最简单版】

【技巧】No. 0647 回文子串【中等】👉力扣对应题目指路

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
欢迎关注、订阅专栏 【力扣详解】谢谢你的支持!

题目描述:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目

  • 回文字符串 是正着读和倒过来读一样的字符串

  • 子字符串 是字符串中的由连续字符组成的一个序列

  • 示例 1:

    输入:s = “abc”
    输出:3
    解释:三个回文子串: “a”, “b”, “c”

  • 示例 2:

    输入:s = “aaa”
    输出:6
    解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”

🔥 思路:从每个潜在的回文中心位置出发,向两侧延展直至延展失败 (每成功延展一次则结果 +1)

  • 中心位置可能是一个 (对应奇数长度的回文串) or 两个 (对应偶数长度的回文串)

参考如上思路,给出详细步骤如下:

  • 步骤一⭐编写延展函数:每成功延展一次则结果 +1
  • 步骤二⭐遍历每个潜在的回文中心位置,调用延展函数处理
    • 中心位置可能是一个 (对应奇数长度的回文串) or 两个 (对应偶数长度的回文串)
class Solution:def countSubstrings(self, s: str) -> int:def extend(left, right):  # --------------------------- step 1temp = 0while left >= 0 and right <= len(s)-1 and s[left] == s[right]:left  -= 1right += 1temp += 1return temp# ----------------------------------------------------- step 2result = 0for s_idx, ss in enumerate(s):result += extend(s_idx, s_idx)      # 奇数对称result += extend(s_idx, s_idx+1)    # 偶数对称return result

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
🔥 LeetCode 热题 HOT 100