zoukankan      html  css  js  c++  java
  • 5. 最长回文子串

    1. 题目:

    给你一个字符串 s,找到 s 中最长的回文子串。

    2. 示例:

    输入:s = "babad"

    输出:"bab" 解释:"aba" 同样是符合题意的答案。

    3. Code

    public class LongestPalindrome {
        int start = 0, maxLen = 1;
        public String longestPalindrome(String s) {
            /**
             * @Method: longestPalindrome
             * @Author: haifwu
             * @Version:  1.0
             * @Date: 21/05/2021 20:51
             * @param s
             * @Return: java.lang.String
             * @Description: 中央扩散
             */
            if (s == null || s.length() == 0) {
                return "";
            }
            for (int i = 0; i < s.length(); i++) {
                extendPalindrome(s, i, i);
                extendPalindrome(s, i, i + 1);
            }
            return s.substring(start, start + maxLen);
        }
    
        public void extendPalindrome(String s, int left, int right) {
            while(left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
                left--;
                right++;
            }
    
            if(maxLen < right - left - 1) {
                start = left + 1;
                maxLen = right - left - 1;
            }
        }
    
        public static void main(String[] args) {
            String s = "babad";
            System.out.println(new LongestPalindrome().longestPalindrome(s));
        }
    }
  • 相关阅读:
    7. 初识Python之函数
    6. 初识Python之dict和set
    5. 初识Python之循环语句
    4. 初识Python之条件语句
    3. 初识Python之列表
    原生js实现一个小小的轮波
    原生js实现弹幕
    js实现一个简单的学生管理系统
    js绘制时钟
    js实现的学生管理系统
  • 原文地址:https://www.cnblogs.com/haifwu/p/14797350.html
Copyright © 2011-2022 走看看