Você está na página 1de 1

/**

* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
let start = 0; // começo do index da string atual
let maxLength = 0;// guarda o valor do tamanho da string mais longa encontrada
const uniqueCharacters = {}; // vai guardar os caracteres únicos

// fazemos loop de cada caracter e para cada caracteR:


for (let i = 0; i < s.length; i++) {
const currentCharacter = s[i];
if(!(currentCharacter in uniqueCharacters)) {
uniqueCharacters[i];
// Este if o que faz é: se o caracter atual ainda não estiver nos
uniqueCharacters, então adiciona o caracter
};
if(currentCharacter in uniqueCharacters) {
start = uniqueCharacters[currentCharacter] + 1;
// Se o caracter já estiver lá, então atualiza o valor de start + 1. O
que isto faz é: vai continuar a fazer "loop" na string à procura de novos
caracteres (não repetindo os que já encontrou)
};
uniqueCharacters[currentCharacter] = i; // Atuliza o valor de
uniqueCharacters e guarda o index de currentCharacter

maxLength = Math.max(maxLength, i - start + 1) // o Math.max vai atualizar


o valor de maxLength para termos o valor e tamanho máximo da atual string que é
calculado através do atual index(i) e o valor inicial (start) + 1 (porque o valor
da string começa em 0)
}
return maxLength;
};

Você também pode gostar