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));
        }
    }
  • 相关阅读:
    C++细节3
    C++细节2
    C++细节1
    连通域标记方法
    dll动态链接库入门2
    UnixShell编程(第三版)
    Xcode 快捷键
    mysql在linux上的一点操作
    mysql 语句
    开机自动启动
  • 原文地址:https://www.cnblogs.com/haifwu/p/14797350.html
Copyright © 2011-2022 走看看