Longest Palindromic Substring

来源:互联网 发布:专业的剪辑软件 编辑:程序博客网 时间:2024/06/08 07:17

最长回文子串


暴力匹配
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.

Have you met this question in a real interview? Yes
Example
Given the string = “abcdzdcab”, return “cdzdc”.

Challenge
O(n2) time is acceptable. Can you do it in O(n) time.

public class Solution {    /**     * @param s input string     * @return the longest palindromic substring     */    public String longestPalindrome(String s) {        // Write your code here        String result = new String();        if(s==null||s.isEmpty())return result;        int n = s.length();        int longest =0;        int left=0,right=0;        for(int i = 0;i<n;i++){            for(int j = i+1;j<=n;j++){                String substr = s.substring(i,j);                if(isPalindrome(substr)&&substr.length()>longest){                    longest =substr.length();                    left =i;                    right =j;                }            }    }    result = s.substring(left,right);    return result ;}    private boolean isPalindrome(String s){        if(s==null||s.isEmpty())return false;        int n = s.length();        for (int i = 0;i<n;i++){            if(s.charAt(i)!=s.charAt(n-i-1))return false;        }        return true;    }}
0 0