leecode-找出其中不含有重复字符的 最长子串 的长度

Posted dennylau

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leecode-找出其中不含有重复字符的 最长子串 的长度相关的知识,希望对你有一定的参考价值。


给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
这道题主要用到思路是:滑动窗口

class Solution { /** * @param String $s * @return Integer */ function lengthOfLongestSubstring($s) { $len = strlen($s); $sarr = str_split($s,1); $varr = array_flip($sarr); $arr = []; $left =0; $mmmm = 0; for($left; $left<$len; $left++){ //存在就修改长度 if (in_array($sarr[$left], $arr)){ //计算当前最大值 $max_len = count($arr); //已存在数组的位置 $ak = 0 ; foreach ($arr as $kkk => $vvv){ if($vvv == $sarr[$left]){ $ak=$kkk; break; } } //删除已存元素位置以及之前的元素 for($j=0;$j<=$ak;$j++){ if(isset($arr[$j])) unset($arr[$j]); } //尾部-首部 // echo ‘letf:‘,$left,‘ak:‘.$ak; $mm = $left-$ak; // echo ‘letf:‘,$left,‘ak:‘.$ak,‘mm:‘.$mm.‘-‘.$max_len.‘--‘; // echo $mmmm,‘-‘.$mm.‘-||‘; if($mmmm<$mm) $mmmm=$mm; //var_dump($max_len,$mm,$mmmm); //echo ‘-----------‘; $arr[$left] = $sarr[$left]; // var_dump($arr); }else{ //echo $sarr[$left]; $arr[$left] = $sarr[$left]; $mmmm = $mmmm<count($arr)?count($arr):$mmmm; // var_dump($arr,$mmmm); // echo $arr[$left] , ‘-‘,$mmmm,"||||||||||||||||||||"; } // echo $mmmm,‘||‘; } return $mmmm; } }

  

以上是关于leecode-找出其中不含有重复字符的 最长子串 的长度的主要内容,如果未能解决你的问题,请参考以下文章

LeeCode 无重复字符串的最长子串

leecode 3. 无重复字符的最长子串

Leecode03. 无重复字符的最长子串——Leecode大厂热题100道系列

Leecode03. 无重复字符的最长子串——Leecode大厂热题100道系列

leetcode-03给定一个字符串,请你找出其中不含有重复字符的最长子串的长度

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度