Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php最大回文子序列?

作者:黑白灰调   发布日期:2025-08-30   浏览:745

以下是一个求解最大回文子序列的PHP函数:

function longestPalindrome($str) {
    $n = strlen($str);
    $dp = array();
    for ($i = 0; $i < $n; $i++) {
        $dp[$i][$i] = 1;
    }
    for ($cl = 2; $cl <= $n; $cl++) {
        for ($i = 0; $i < $n - $cl + 1; $i++) {
            $j = $i + $cl - 1;
            if ($str[$i] == $str[$j] && $cl == 2) {
                $dp[$i][$j] = 2;
            } elseif ($str[$i] == $str[$j]) {
                $dp[$i][$j] = $dp[$i + 1][$j - 1] + 2;
            } else {
                $dp[$i][$j] = max($dp[$i][$j - 1], $dp[$i + 1][$j]);
            }
        }
    }
    return $dp[0][$n - 1];
}

$str = "babad";
echo longestPalindrome($str); // 输出3

该函数使用动态规划的方法求解最大回文子序列。首先创建一个二维数组$dp[$i][$j],其中$dp[$i][$j]表示从索引$i$到索引$j$的子串的最大回文子序列长度。然后,遍历字符串$str$的所有子串,更新$dp$数组。最后,返回$dp[0][$n-1]$,其中$n$是字符串$str$的长度。

上一篇:php抓取指定id(php抓取页面指定内容)

下一篇:php文件怎样能正常运行?(PHP运行)

大家都在看

php session用法

php 定义常量

phpisset函数

php html转图片

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 判断是否为空

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站