# LeetCode 3. Longest Substring Without Repeating Characters

Here is my solution in PHP to this problem.

``````class Solution {

/**
* @param String \$s
* @return Integer
*/
function lengthOfLongestSubstring(\$s) {
\$n = strlen(\$s);
\$ans = 0;
\$i = 0;
\$j = 0;

\$arr = [];

while (\$i < \$n && \$j < \$n) {
if (!in_array(\$s[\$j], \$arr)) {
\$arr[] = \$s[\$j++];
\$ans = max(\$ans, \$j-\$i);
} else {
array_splice(\$arr, 0, 1);
\$i++;
}
}

return \$ans;
}
}
``````

And here is solution JavaScript based on this Udemy lesson:

``````/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
if (s.length <= 1) return s.length;

const seenChars = {};
let i=0, longest=0;

for (let j=0; j<s.length; j++) {
const currentChar = s[j];
const currentCharIndex = seenChars[currentChar];

if (currentCharIndex>=i) {
i = currentCharIndex+1;
}

longest = Math.max(longest, j-i+1);
seenChars[currentChar] = j;
}

return longest;
};
``````
Published on

Previous post: Json_error_ctrl_char

Next post: LeetCode 7. Reverse Integer