• 最长回文子串


    给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

    示例 1:

    输入: "babad"
    输出: "bab"
    注意: "aba" 也是一个有效答案。
    示例 2:

    输入: "cbbd"
    输出: "bb"

    package my;
    
    public class LongestPalindromeSubstring {
        public String longestPalindrome(String s){
            if(s== null ||s.length()<1){
                return "";
            }
            //初始化最大回文子串的起点和终点
            int start =0;
            int end =0;
            //遍历每个位置,当做中心位
            for(int i=0;i<s.length();i++){
                int len1=expandCenter(s,i,i);
                int len2=expandCenter(s,i,i+1);
                //对比最大的长度
                int len= Math.max(len1,len2);
                // 计算对应最大回文子串的起点和终点
                if(len > end - start){
                    start = i-(len -1 )/2 ;
                    end = i+ len/2 ;
                }
            }
            return s.substring(start,end + 1);
        }
        /**
         *
         * @param s             输入的字符串
         * @param left          起始的左边界
         * @param right         起始的右边界
         * @return              回文串的长度
         */
        public int expandCenter(String s, int left,int right){
            // left = right 的时候,此时回文中心是一个字符,回文串的长度是奇数
            // right = left + 1 的时候,此时回文中心是一个空隙,回文串的长度是偶数
            // 跳出循环的时候恰好满足 s.charAt(left) != s.charAt(right)
            while(left >=0 && right < s.length() && s.charAt(left) == s.charAt(right)){
                left --;
                right++;
            }
            // 回文串的长度是right-left+1-2 = right - left - 1
            return right - left - 1;
        }
        public static void main(String [] args){
            String str ="ebababd";
            LongestPalindromeSubstring lps =new LongestPalindromeSubstring();
            String  s = lps.longestPalindrome(str);
            System.out.println(s);
        }
    }
  • 相关阅读:
    case1.将文件夹内文件,按文件后缀不同进行分类
    openpyxl/csv--python处理excel表格模块
    pyttsx3--文字转语音库
    网络爬虫遵守规则
    python-requests库
    js 对象遍历出现的异常
    POI解析word文件,并为特定规则的key替换值
    bootstrap-table获得页面加载数据
    Javaweb项目下载文件时设置文件名
    MySQL自定义函数
  • 原文地址:https://www.cnblogs.com/goodtest2018/p/13562880.html
Copyright © 2020-2023  润新知