PHP算法之無重復字符的最長子串


給定一個字符串,請你找出其中不含有重復字符的 最長子串 的長度。

示例 1:

輸入: "abcabcbb"
輸出: 3
解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。
示例 2:

輸入: "bbbbb"
輸出: 1
解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。
示例 3:

輸入: "pwwkew"
輸出: 3
解釋: 因為無重復字符的最長子串是 "wke",所以其長度為 3。
  請注意,你的答案必須是 子串 的長度,"pwke" 是一個子序列,不是子串。

 

class Solution {

    /**
     * @param String $s
     * @return Integer
     */
    function lengthOfLongestSubstring($s) {

        $l = strlen($s); //獲取字符串總長度
        $len = 0;   //記錄長度
        $find = ''; //保存截取字符串

        for($i=0;$i<$l;$i++){
            $res = strpos($find,$s[$i]); // 查找$find中是否存在

            if($res !== false){

                $find.=$s[$i];

                $find = substr($find,$res+1);

            }else{
                $find.=$s[$i];
            }

            $len = strlen($find) > $len ? strlen($find) : $len;
        }
        return $len;    
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM