zoukankan      html  css  js  c++  java
  • LeetCode——回文子串

    Q:给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。
    具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。

    示例 1:

    输入:"abc"
    输出:3
    解释:三个回文子串: "a", "b", "c"
    示例 2:

    输入:"aaa"
    输出:6
    解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"

    A:
    中心扩展

        private static int countSubStrings(String s) {
            int num = 0;
            for (int i = 0; i < s.length(); i++) {
                num += numOfPalindrome(s, i, i);//以该点为中点
                num += numOfPalindrome(s, i, i + 1);//以该点为左中点
            }
            return num;
        }
    
        private static int numOfPalindrome(String s, int left, int right) {
            int count = 0;
            while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
                count++;
                left--;
                right++;
            }
            return count;
        }
    
  • 相关阅读:
    招行面试
    今日头条面试[教育岗]
    四方精创 面试
    ArrayList 源码
    redis缓存,穿透,击穿,雪崩
    hashMap
    集合整理
    阿里CBU技术部一面
    网安面试
    php递归获取顶级父类id
  • 原文地址:https://www.cnblogs.com/xym4869/p/13657641.html
Copyright © 2011-2022 走看看