leetcode-最长回文子串、最长回文子序列

本文探讨了LeetCode上的5. 最长回文子串问题,介绍了中心扩展法和动态规划两种解决方案,并提供了相关代码。此外,还提到了516. 最长回文子序列问题,指出动态规划解法的挑战性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先说明:

子串是在原始字符串中连续的,子序列在原始字符串中可连续可不连续

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 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值