function lengthstring($s)
{
$i=0;
$max=0;
$size=strlen($s);
for($j = 0; $j < $size; $j++){
for($k = $i; $k < $j; $k++)
if($s[$k] == $s[$j]){
$i = $k + 1;
break;
}
if($j - $i + 1 > $max)
$max = $j - $i + 1;
}
return $max;
}
$s='abcabcbb';
var_dump(lengthstring($s));
分析:strlen($s)取字符串的长度,第一个for循环从字符串第一个字符开始,就是取出一个字符,然后第二个for是从第一个字符开始匹配,看是否有字符和一个个for中的字符相同的, 如果有就break退出循环,从0开始的所以需要加一,返回匹配的字符之间的相差值。