function lengthOfLongestSubstring($s): string { $max = 0; // 返回结果,初始化为0 $len = strlen($s); // 传入的字符串长度 $str = ''; // 维护的滑动窗口字符串 for ($i = 0; $i < $len; $i++) { // 查询看当前字符串有没在滑动窗口内有重复的 $index = strpos($str, $s[$i]); // 如果有重复的就分割,去掉重复前的,保留后面的作为新的滑动窗口 if ($index !== false) { $str = substr($str, $index + 1); } // 添加当前字符串,组成新的滑动窗口 $str .= $s[$i]; // 获取滑动窗口的长度 // $strLen = strlen($str); // 比较大小,最新的滑动窗口长度和旧返回结果,取两者较大值作为最新的返回结果 //$max = $strLen > $max ? $strLen : $max; } return $str; } $a = 'adbcababdaccfabcdeabcdef'; echo lengthOfLongestSubstring($a);
标签:index,窗口,max,算法,str,字符串,滑动 From: https://www.cnblogs.com/wujf-myblog/p/17129942.html