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;
        }
    
  • 相关阅读:
    NOI2015 寿司晚宴
    bzoj3456 城市规划
    DDP入门
    HAOI2018 染色
    曹冲养猪
    采药
    跳跳棋
    基础复习笔记-最短路

    康熙环球
  • 原文地址:https://www.cnblogs.com/xym4869/p/13657641.html
Copyright © 2011-2022 走看看