zoukankan      html  css  js  c++  java
  • 005 Longest Palindromic Substring 最长回文子串

    Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
    Example:
    Input: "babad"
    Output: "bab"
    Note: "aba" is also a valid answer.
    Example:
    Input: "cbbd"
    Output: "bb"

    详见:https://leetcode.com/problems/longest-palindromic-substring/description/

    Java实现:

    class Solution {
        public String longestPalindrome(String s) {
            int size=s.length();
            if(size==1||s.isEmpty()){
                return s;
            }
            int len=0;
            int start=0;
            int end=0;
            for(int i=0;i<size;++i){
                int len1=helper(s,i,i);
                int len2=helper(s,i,i+1);
                len=Math.max(len1,len2);
                if(len>(end-start)){
                    start=i-(len-1)/2;
                    end=i+(len/2);
                }
            }
            return s.substring(start,end+1);
        }
        private int helper(String s,int start,int end){
            while(start>=0&&end<s.length()&&s.charAt(start)==s.charAt(end)){
                --start;
                ++end;
            }
            return (end-start-1);
        }
    }
  • 相关阅读:
    Pascal's Triangle
    Pascal's Triangle II
    贪心算法入门
    Jump Game
    Symmetric Tree
    Reverse Words in a String
    [BZOJ2342][Shoi2011]双倍回文
    [HDU3068]最长回文
    [POJ1984]Navigation Nightmare
    [BZOJ3295][Cqoi2011]动态逆序对
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8681597.html
Copyright © 2011-2022 走看看