Sunday, March 27, 2022

[LeetCode] 5. Longest Palindromic Substring

"踏上LeetCode解題之路,順手紀錄一下PHP練功的過程囉。這是第三篇~~"


Longest Palindromic Substring - LeetCode


題目要求

Given a string s, return the longest palindromic substring in s.


思考過程

  1. 透過...(待更新)
  2. ...


結果

class Solution {

    /**
     * @param String $s
     * @return String
     */
    function longestPalindrome($s) {
        
        
        if (($length = strlen($s)) <= 1) {
            return $s;
            /* $s ==0 a or b */
        }
           
        if (strrev($s) === $s) {
            return $s;
            /* bb aa ccc == bb aa = ccc*/
        }
        
        $max_length = 1;
        for ($i = 0; $i < $length; ++$i) {
            
            for ($len = $max_length; $len <= $length; ++$len){
                $start = $i - ($len >> 1);
            /* bb c == bb c */
                
            if ($start < 0 || $start + $len > $length) {
                break;
            }   
            $substr = substr($s, $start, $len);
                /*count down $len in $s; print 0-$start*/
                
			if ($substr === strrev($substr)) {
				$str = $substr;
				$max_length = $len;
                /* bb == bb */
                
			} else if ($max_length + 1 < $len) {
				break;
			}
		}
	}

	return $str;
        
    }
}


Contact Form

Name

Email *

Message *