2019-05-15 吴亲库里 库里的深夜食堂
给定一个字符串,让我们求最长无重复的字符子串,从例3中可以看出来,求的是连续最长的。如果不是连续结果就是pwke了。
这里遍历整个字符串,定义一个变量用来存储字符串,定义一个变量存储最大的长度,只要出现重复了,说明此时就是从头到当前字母无重复的最大长度,我们需要把开始计算位置移至它的下一个位置即可。每次保存最大连续长度,直至遍历结束。
/**
* @param String $s
* @return Integer
*/
function lengthOfLongestSubstring($s) {
$max = 0;
$current = '';
$len=$i=0;
for (;$i < strlen($s); $i++) {
if (strpos($current, $s[$i]) !== false) {
$current = substr($current, strpos($current, $s[$i])+1);
$len = strlen($current);
}
$current .= $s[$i];
$len++;
$max = max($max, $len);
}
return $max;
}