解题思路
多层嵌套循环字符串,拼接子字符串,拼接时判断是否已经存在某个字符,不存在则拼接,反之则跳过。里面每次跳出循环,则循环的初始值加1,当等于字符串长度时,则整个循环结束。空数组存储所有子串,然后获取子串的最大长度。
代码
class Solution {
/**
* @param String $s
* @return Integer
*/
function lengthOfLongestSubstring($s) {
$slen = strlen($s);
$begin_i = 0;
$array = [];
while(true) {
$sub = '';
for ($i = $begin_i; $i < $slen; $i++) {
if (strpos($sub, $s[$i]) === FALSE) {
$sub .= $s[$i];
$array[] = strlen($sub);
} else {
break;
}
}
if ($begin_i == $slen) {
break;
} else {
$begin_i++;
}
}
return $array ? max($array) : 0;
}
}
作者:sen-sen-k
链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters/solution/by-sen-sen-k-wh9k/