字符串最长不重复字串长度

class Solution
{

    /**
     * @param String $s
     * @return Integer
     */
    function lengthOfLongestSubstring($s)
    {
        $len = strlen($s);
        if ($len <= 1) {
            return $len;
        }

        $start = $ans = 0;
        $ss = '';
        $map = [];
        for ($end = 0; $end < $len; $end++) {
            if (isset($map[$s[$end]])) {
                $ss = substr($s, $start, $ans);
                $start = max($map[$s[$end]], $start);//这里很重要
            }
            $ans = max($ans, $end - $start + 1);
            $map[$s[$end]] = $end + 1;//加一很重要
            if ($ans > strlen($ss)) {
                $ss = substr($s, $start, $ans);
            }
        }

        var_dump($start, $end, $ans, $map, $ss);
    }
}

$a = new Solution();
$a->lengthOfLongestSubstring("abba");

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

  Previous post PHP排序函数
Next post   已到最新一篇

添加新评论

日历
2020 1
  12345
6789101112
13141516171819
20212223242526
2728293031  

  关于博主

  近期评论

  • 暂无评论

快乐地过是一天,不快乐地过也是一天,我为什么不快快乐乐地过每一天呢?

岂能尽随人愿,但求无愧我心。

在你内心深处,还有无穷的潜力,有一天当你回首看时,你就会知道这绝对是真的。

活在当下,别在怀念过去或者憧憬未来中浪费掉你现在的生活。

挫折时,要像大树一样,被砍了,还能再长;也要像杂草一样,虽让人践踏,但还能勇敢地活下去。