[LeetCode]Longest Palindromic Substring(Java)

来源:互联网 发布:对讲机写频软件 编辑:程序博客网 时间:2024/06/15 07:53

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"

题意:在字符串s中,返回最长回文字符串

主要有两种情况:

1.单数回文:

Input "babad" 

Output "bab" or "aba"

2.偶数回文:

Input "cbbd"

Output "bb"


用O(n^2)简单AC

public class Solution {    public String longestPalindrome(String s) {        char[] array = s.toCharArray();        int max=0;        int p,q;        String ans=s;        for(int i=1;i<array.length;i++){            p=0;            q=0;           while(i+q+1<array.length&&i-q-1>=0){           if(array[i+q+1]!=array[i-q-1]) break;       q++;           }           while(i-p-1>=0&&i+p<array.length){           if(array[i+p]!=array[i-p-1]) break;           p++;           }           if(2*q+1>max){                max=2*q+1;                ans=s.substring(i-q,i+q+1);            }            if(2*p>max){                max=2*p;                ans=s.substring(i-p,i+p);            }        }        return ans;    }}


0 0
原创粉丝点击