La subcadena más larga del algoritmo clásico sin caracteres repetidos

Subcadena más larga sin caracteres repetidos
1. Descripción del título:
dada una cadena, encuentre la longitud de la subcadena más larga sin caracteres repetidos.

Ejemplo 1:

Entrada: "abcabcbb"
Salida: 3
Explicación: Debido a que la subcadena más larga sin caracteres repetidos es "abc", su longitud es 3.

Ejemplo 2

Entrada: "bbbbb"
Salida: 1
Explicación: Debido a que la subcadena más larga sin caracteres repetidos es "b", su longitud es 1.

Ejemplo 3

Entrada: "pwwkew"
Salida: 3
Explicación: Debido a que la subcadena más larga sin caracteres repetidos es "wke", su longitud es 3.

Tenga en cuenta que su respuesta debe ser la longitud de la subcadena, "pwke" es una subsecuencia, no una subcadena.

2 、 我 的 代码 :
clase Solución {
public:
int lengthOfLongestSubstring (string s) {
int total_len = s.size ();
int max_len = 1;
int len ​​= 1;
int i = 0, j = 0;
map <char, bool> before_value;
if (total_len <= 1)
devuelve total_len;

    for(i = 0; i < total_len - 1; ++i) {
        len = 1;
        before_value.clear();
        before_value[s[i]] = true;
        for(j = i+1; j < total_len; ++j) {
            if(before_value[s[j]] != true) {
                before_value[s[j]] = true;
                ++len;
            }else {
                if(len > max_len)
                    max_len = len;
                break;
            }
            if(len > max_len)
                max_len = len;
        }
    }

    return max_len;

}

};

3. Buena solución solución de
clase en línea {

público:

int lengthOfLongestSubstring(string s) {
    
    if(s.size() == 0) return 0;
    
    unordered_set<char> lookup;
    
    int maxStr = 0;
    
    int left = 0;
    
    for(int i = 0; i < s.size(); i++){
        
        while (lookup.find(s[i]) != lookup.end()){
            
            lookup.erase(s[left]);
            
            left ++;
        
        }
        
        maxStr = max(maxStr,i-left+1);
        
        lookup.insert(s[i]);

   }
    
   return maxStr;

}
};

4, en el que puedan mejorar la
cadena de entrada a largo plazo más allá del límite de tiempo que consume tiempo
5, sin optimizado código para Jane Jane

6. Pensamiento

Publicado 4 artículos originales · Me gusta0 · Visitas 25

Supongo que te gusta

Origin blog.csdn.net/digitaluser/article/details/105587648
Recomendado
Clasificación