Leetcode基础刷题之PHP解析(3. Longest Substring Without Repeating Characters )

栏目: PHP · 发布时间: 5年前

内容简介:如果当前没有针对性的话,那就从头把之前补上。

2 0 1 9 -5 -14   期二    

如果当前没有针对性的话,那就从头把之前补上。

Leetcode基础刷题之 PHP 解析(2. Add Two Numbers)

Leetcode基础刷题之PHP解析(3. Longest Substring Without Repeating Characters )

给定一个字符串,让我们求最长无重复的字符子串,从例3中可以看出来,求的是连续最长的。如果不是连续结果就是pwke了。

这里遍历整个字符串,定义一个变量用来存储字符串,定义一个变量存储最大的长度,只要出现重复了,说明此时就是从头到当前字母无重复的最大长度,我们需要把开始计算位置移至它的下一个位置即可。每次保存最大连续长度,直至遍历结束。

/**
     * @param String $s
     * @return Integer
     */
    function lengthOfLongestSubstring($s) {
        $max = 0;
        $current = '';
        $len=$i=0;
        for (;$i < strlen($s); $i++) {
            if (strpos($current, $s[$i]) !== false) {
                $current = substr($current, strpos($current, $s[$i])+1);
                $len = strlen($current);
            }
            $current .= $s[$i];
            $len++; 
            $max = max($max, $len);
        }
        
        return $max;
    }

Github整理地址: https://github.com/wuqinqiang/leetcode-php


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

个体与交互

个体与交互

Ken Howard、Barry Rogers / 贾永娜、张凯峰 / 机械工业出版社华章公司 / 2012-3-20 / 45.00元

对敏捷软件开发的关注重点,通常都集中在“机制”方面,即过程和工具。“敏捷宣言”认为,个体与交互的价值要高于过程和工具,但这一点很容易被遗忘。在敏捷开发中,如果你重新将注意力放在人的方面,将会收获巨大利益。 本书展示了如何解决敏捷团队在实际项目中遭遇的问题。同时,本书也是很有实用价值的敏捷用户指南,其中包含的故事、最佳实践方法、经验以及技巧均可应用到实际项目当中。通过逐步实践,你将学会如何让团......一起来看看 《个体与交互》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具