码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-23 13:15:53      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:param   substring   sar   元素   重复   数组   integer   function   ram   


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

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-找出其中不含有重复字符的 最长子串 的长度

标签:param   substring   sar   元素   重复   数组   integer   function   ram   

原文地址:https://www.cnblogs.com/dennylau/p/11725434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!