題目要求
直接上代碼
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”