<?php/** * 取给定字符串的最长子串 * * abcabcbb * $array = [a => 0, b => 1, c => 2, ... , b => 6, b => 7]; * @param string $s * @return int|mixed */function lengthOfLongestSubString(string $s) { if (!$s || strlen($s) === 0) { return 0; } $array = []; $ret = 0; $start = 0; for ($i = 0; $i < strlen($s); $i++) { if (isset($array[$s[$i]]) && $start <= $array[$s[$i]]) { $start = $array[$s[$i]] + 1; } else { $ret = max($ret, $i - $start + 1); } $array[$s[$i]] = $i; } return $ret;}$str = 'abcabcbb';$ret = lengthOfLongestSubString($str);print_r($ret);