首页 > 编程语言 >滑动窗口算法-找出字符串中无重复的最长字符串

滑动窗口算法-找出字符串中无重复的最长字符串

时间:2023-02-17 14:25:13浏览次数:40  
标签:index 窗口 max 算法 str 字符串 滑动

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

相关文章