5. 最长回文子串

地址:https://leetcode-cn.com/problems/longest-palindromic-substring/

<?php

/**
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例 1:

输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:

输入: "cbbd"
输出: "bb"

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
 */
class Solution {

    /**
     * @param String $s
     * @return String
     */
    public $res = '';
    public $max = 0;
    function longestPalindrome($s) {
        if(strlen($s) <=1) return $s;

        for ($i = 0;$i< strlen($s);$i++){
            $this->diffusion($s,$i,$i);
        }
    }

    public function diffusion($s,$left,$right){
        while($left >=0 &&$right <strlen($s) && $s[$left] == $s[$right]){
            if($right-$left+1>$this->max){
                $this->max = $right-$left +1;
                $this->res =substr($s,$left,$right-$left+1);
            }
            $left--;
            $right++;
        }
    }
}

 

posted @ 2020-06-04 10:26  花花妹子。  阅读(125)  评论(0编辑  收藏  举报