LeetCode5. Longest Palindromic Substring

来源:互联网 发布:淘宝黛慕名品假货 编辑:程序博客网 时间:2024/05/18 07:45

题目

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"

思路

写一个子程序,从某一单个char(或者两个相等char)开始不断向两边扩展,直到碰到扩展后的String不对称为止;

遍历一遍String中的不同起始位置,即可得到结果。


代码

public class Solution {int maxlength = 1;    int maxstart = 0;public void extendPalind(String s, int j , int k ){    while(j >= 0 && k < s.length() && s.charAt(j) == s.charAt(k)){        --j;        ++k;    }    if(maxlength < (k - j - 1)){        maxstart = j + 1;        maxlength = k - j - 1;    }}    public String longestPalindrome(String s) {        int length = s.length();        if(length < 2){            return s;        }        for(int i = 0 ; i < length - 1 ; ++ i){            extendPalind(s , i , i );            extendPalind(s , i , i + 1);        }        return s.substring(maxstart , maxstart + maxlength);    }}


原创粉丝点击