Problème
Retournez l'indice du premier caractère dans text qui apparaît exactement une fois. La casse est prise en compte.
Implémentez first_unique_index(text).
Entrée
text : Le texte à analyser.
Sortie
Retournez l'indice, ou -1 si chaque caractère se répète.
Contraintes
0 ≤ longueur ≤ 100 000
Exemples
Entrée :
text = "swiss"
Sortie attendue :
expected = 1
Entrée :
std::string text = "swiss";
Sortie attendue :
long long expected = 1;
Entrée :
string text = "swiss";
Sortie attendue :
long expected = 1;
Explication
s se répète, w apparaît une seule fois à l'indice 1.
Entrée :
text = "aabb"
Sortie attendue :
expected = -1
Entrée :
std::string text = "aabb";
Sortie attendue :
long long expected = -1;
Entrée :
string text = "aabb";
Sortie attendue :
long expected = -1;
Explication
Chaque caractère se répète : -1.
Comment l'aborder
Essayez d'abord seul, puis ouvrez les indices un par un.
Indice 1
Il faut les caractères qui apparaissent exactement une fois, pas juste le premier différent.
Indice 2
Compte d’abord la fréquence de tous les caractères, puis trouve la première position de fréquence un.
Indice 3
Souviens-toi que les majuscules et les minuscules sont des caractères différents.
Complexité attendue
temps O(n), espace supplémentaire O(k)
Références
Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.