Leetcode基础刷题之PHP解析(3. Longest Substring Without Repeating Characters )
2019-5-14 星期二 开始吧
如果当前没有针对性的话,那就从头把之前补上。
上一题链接Leetcode基础刷题之PHP解析(2. Add Two Numbers)
题目描述
给定一个字符串,让我们求最长无重复的字符子串,从例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
No Comments