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 '#';
}
};