(java)leetcode-5

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"


解题思路:

我一开始的想法是构造一个List,存储回文序列的中间值,然后遍历String中的每一个字符的时候看下是否能够叠加在原来的回文序列中,不满足的话就把那个Substring拿出来跟max_string进行比较,更新max_string。后面发现这种方法实在是很麻烦,尤其是遇到哪种一串相同的字符串的时候,例如"aaaaaa"这种会很麻烦。

后面的想法就是进行一次遍历,把每一个值都当成是回文的中心,扩展开去找以其为中心的最大回文序列,这样会快很多。注意就是要分为奇数长度的和偶数长度的。


public class Solution {
    public String longestPalindrome(String s)
	{
		if (s.length() == 0)
			return "";
		String substring = s.substring(0,1);
		for(int i = 0;isubstring.length() && len1 >=len2)
				substring = s.substring(lo1, lo1+len1);
			else if(len2>substring.length() && len2>len1)
				substring = s.substring(lo2, lo2+len2);
		}
		return substring;
	}
	public int loindex(int x1,int x2,String s)
	{
		while(x1 >= 0 && x2



你可能感兴趣的:(leetcode)