Una primera oferta para probar la seguridad del flujo de caracteres sin repetir caracteres

título Descripción

Por favor implementar una función para encontrar el flujo de caracteres por primera vez que un personaje aparece solo. Por ejemplo, cuando el flujo de caracteres lee sólo los dos primeros caracteres "ir", el primer carácter sólo se produce una vez a la "g". Cuando la lectura de los primeros seis caracteres "google" en el flujo de caracteres, aparece por primera vez sólo un carácter es "l".

pensamiento

Hash: Crear un número de ocurrencias de cada representación de matriz de caracteres, uno por uno carácter de lectura después de caracteres correspondiente a la matriz de números más uno, después de recorrer la cadena, si el número de ocurrencias de ese recuento de caracteres es 1, entonces vuelve

código

class Solution
{
public:
    string str;
    int Hash[128];
  //Insert one char from stringstream
    void Insert(char ch)
    {
        str = str + ch;
        Hash[ch-NULL]++;
    }
  //return the first appearence once char in current stringstream
    char FirstAppearingOnce()
    {
        if(str.size() == 0)
            return '#';
        for(int i = 0; i < str.size();i++)
        {
            if(Hash[str[i]-NULL] == 1)
                return str[i];
        }
        return '#';
    }
};
Publicado 85 artículos originales · ganado elogios 0 · Vistas 403

Supongo que te gusta

Origin blog.csdn.net/weixin_38312163/article/details/104766160
Recomendado
Clasificación