Torna alle sfide
Facile 0 risolte 0% di accettazione

Primo Carattere Unico

Trova il primo carattere che compare una sola volta.

Cosa imparerai

  • Contare i caratteri con un dizionario
  • Fare un secondo passaggio per trovare il primo unico
  • Risolvere in tempo lineare

Problema

Restituisci l'indice del primo carattere in text che compare esattamente una volta. Il maiuscolo/minuscolo conta.

Implementa first_unique_index(text).

Input

text: Il testo da analizzare.

Output

Restituisci l'indice, oppure -1 se ogni carattere si ripete.

Vincoli

0 ≤ lunghezza ≤ 100.000

Esempi

Esempio 1
Input:
text = "swiss"

Output atteso:
expected = 1
Input:
std::string text = "swiss";

Output atteso:
long long expected = 1;
Input:
string text = "swiss";

Output atteso:
long expected = 1;

Spiegazione

s si ripete, w compare una sola volta all'indice 1.

Esempio 2
Input:
text = "aabb"

Output atteso:
expected = -1
Input:
std::string text = "aabb";

Output atteso:
long long expected = -1;
Input:
string text = "aabb";

Output atteso:
long expected = -1;

Spiegazione

Ogni carattere si ripete: -1.

Come affrontarlo

Prova prima da solo, poi apri un suggerimento alla volta.

Suggerimento 1

Ti servono i caratteri che compaiono esattamente una volta, non solo il primo diverso.

Suggerimento 2

Conta prima le frequenze di tutti i caratteri, poi trova la prima posizione con frequenza uno.

Suggerimento 3

Ricorda che lettere maiuscole e minuscole sono caratteri diversi.

Complessità attesa

tempo O(n), spazio aggiuntivo O(k)

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.