<?php
/**
* 最长回文子串
*
* User: hihone
* Date: 2019/2/1
* Time: 10:16
* Description:
* 给定一个字符串 $string,找到 $string 中最长的回文子串。
* 回文串就是正着读和反着读都一样的字符串。
*/
class Solution
{
public function longestPalindrome($string)
{
$len = strlen($string);
if (empty($string) || empty($len)) return '';
$start = 0;
$end = 0;
for ($i = 0; $i < $len; $i++) {
$len1 = $this->expandAroundCenter($string, $i, $i);
$len2 = $this->expandAroundCenter($string, $i, $i + 1);
$max = max($len1, $len2);
if ($max > $end - $start) {
$start = $i - intval(($max - 1) / 2);
$end = $i + intval($max / 2);
}
}
$subStrLen = $end - $start + 1;
return substr($string, $start, $subStrLen);
}
/**
* @param $string
* @param $l
* @param $r
*
* @return int
*/
private function expandAroundCenter($string, $l, $r)
{
while ($l >= 0 && $r < strlen($string) && $string[$l] == $string[$r]) {
$l--;
$r++;
}
return $r - $l - 1;
}
}
$s = new Solution();
$str = 'cbbd';
echo $s->longestPalindrome($str);
最长回文子串
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 作者:寒小阳 时间:2013年9月。出处:http://blog.csdn.net/han_xiaoyang/ar...
- 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司。 今...