Problem
Gib den Index des ersten Zeichens in text zurück, das genau einmal vorkommt. Groß- und Kleinschreibung wird unterschieden.
Implementiere first_unique_index(text).
Eingabe
text: Der zu untersuchende Text.
Ausgabe
Gib den Index zurück, oder -1, falls jedes Zeichen mehrfach vorkommt.
Einschränkungen
0 ≤ Länge ≤ 100.000
Beispiele
Eingabe:
text = "swiss"
Erwartete Ausgabe:
expected = 1
Eingabe:
std::string text = "swiss";
Erwartete Ausgabe:
long long expected = 1;
Eingabe:
string text = "swiss";
Erwartete Ausgabe:
long expected = 1;
Erläuterung
s wiederholt sich, w kommt einmalig an Index 1 vor.
Eingabe:
text = "aabb"
Erwartete Ausgabe:
expected = -1
Eingabe:
std::string text = "aabb";
Erwartete Ausgabe:
long long expected = -1;
Eingabe:
string text = "aabb";
Erwartete Ausgabe:
long expected = -1;
Erläuterung
Jedes Zeichen wiederholt sich: -1.
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Du brauchst Zeichen, die genau einmal vorkommen, nicht nur das erste andere Zeichen.
Hinweis 2
Zähle zuerst alle Zeichenhäufigkeiten und finde dann die früheste Position mit Häufigkeit eins.
Hinweis 3
Denk daran, dass Groß- und Kleinbuchstaben unterschiedliche Zeichen sind.
Erwartete Komplexität
Zeit O(n), zusätzlicher Speicher O(k)
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.