Problema
Retorne o índice do primeiro caractere em text que aparece exatamente uma vez. Diferencia maiúsculas de minúsculas.
Implemente first_unique_index(text).
Entrada
text: O texto a ser analisado.
Saída
Retorne o índice, ou -1 se todos os caracteres se repetirem.
Restrições
0 ≤ comprimento ≤ 100.000
Exemplos
Entrada:
text = "swiss"
Saída esperada:
expected = 1
Entrada:
std::string text = "swiss";
Saída esperada:
long long expected = 1;
Entrada:
string text = "swiss";
Saída esperada:
long expected = 1;
Explicação
s se repete, w aparece uma vez no índice 1.
Entrada:
text = "aabb"
Saída esperada:
expected = -1
Entrada:
std::string text = "aabb";
Saída esperada:
long long expected = -1;
Entrada:
string text = "aabb";
Saída esperada:
long expected = -1;
Explicação
Todos os caracteres se repetem: -1.
Como abordar
Tente sozinho primeiro e depois abra uma dica de cada vez.
Dica 1
Você precisa de caracteres que apareçam exatamente uma vez, não apenas do primeiro diferente.
Dica 2
Conte todas as frequências de caracteres primeiro, depois encontre a primeira posição com frequência 1.
Dica 3
Lembre que letras maiúsculas e minúsculas são caracteres diferentes.
Complexidade esperada
tempo O(n), espaço extra O(k)
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.