[leetcode-1]無重複字符的最長子串

題目要求

在這裏插入圖片描述

直接上代碼


class Solution {

    /**
     * @param String $s
     * @return Integer
     */
    function lengthOfLongestSubstring($s) {
        //abcadebfqcddd
        $str = '';
        $str_len = strlen($s);
        $max_len = 0;
        for($i=0; $i<$str_len; $i++){
            //遍歷
            $loc = strpos($str, $s[$i]);
            if($loc === false){
                $str .= $s[$i];
            }else{         
                $str = substr($str, $loc+1);
                $str .= $s[$i];
            }
            
            if(strlen($str) > $max_len){
                $max_len = strlen($str);
            }
        }
        return $max_len;
    }
}

思路分析

解析:這個題目解題思路的重點是想到分析出比較好的算法,我用的這個方法很簡單,只要看過一次就能明白,關鍵在於怎麼想到這個思路。
下面粘出博友的思路,我覺得寫得很好,清晰。

轉載博客鏈接點擊
在這裏插入圖片描述

注意事項

注意邊界值:

  • 包含空字符的字符串:“ ”
  • 長度爲0的空字符串:“”
  • 沒有任何重複字符的字符串:“dfslw”
  • 都是重複值的字符串:“aaaaaaaaa”
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章