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

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   已到最新一篇

添加新评论

日历
2019 12
2345678
9101112131415
16171819202122
23242526272829
3031     

  关于博主

  近期评论

  • 暂无评论

要铭记在心:每天都是一年中最美好的日子。

生活远没有咖啡那么苦涩,关键是喝它的人怎么品味!每个人都喜欢和向往随心所欲的生活,殊不知随心所欲根本不是生活。

如果错过了太阳时你流泪了,那么你也要错过群星了。

不如意的时候不要尽往悲伤里钻,想想有笑声的日子吧。

我不明白为什么要那么在意别人的看法,评头论足只是无聊人的消遣,何必看得如临大敌。如果你不吃别人家的饭,就别太把别人的话放在心上。