首先说明:
子串是在原始字符串中连续的,子序列在原始字符串中可连续可不连续
leetcode 5. 最长回文子串
题目描述:给你一个字符串 s
,找到 s
中最长的回文子串。
此题有两种经典的解法,一种是动态规划,一种是中心扩展法,个人更喜欢中心扩展法,两种方法都放一下代码。
中心扩展法
以当前字符为中心,向左右两边扩展,寻找以当前字符为中心的回文串,以下是返回最长回文串的长度
import java.util.*;
/**
以下做法是返回长度
**/
public class Solution {
public int getLongestPalindrome(String A, int n) {
// write code here
//使用中心扩展法做一次
int result = 0;
for(int i=0;i<n;i++){
//以当前这个字符为中心,向两边扩展 需要进行两种情况的考量 一种是当前回文子串的长度是奇数 另外一种是当前回文子串的长度是偶数
int len1 = center(A,i,i); //考虑当前回文子串的长度是奇数的时候
int len2 = center(A,i,i+1); //