Obbiettivo:
Data una matrice di stringhe, creare versioni abbreviate di ogni stringa.
Specifica:
Per questa sfida, un'abbreviazione è i primi N caratteri di una stringa. Per la stringa abc: a, ab, e abcsono tutte le abbreviazioni valide, mentre bc, e acnon lo sono.
Dato un array di stringhe, vogliamo trovare il set più breve di abbreviazioni, in modo tale che, dato l'input e l'eventuale abbreviazione, sia possibile determinare a quale elemento dell'input si riferiva l'abbreviazione.
Esempio:
Ingresso: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
Lavoriamo attraverso le stringhe iniziando dal primo.
Lunedì è solo la stringa dell'articolo con un
M, quindi l'abbreviazione più breve possibile èM.Il martedì inizia con
T, ma anche giovedì. Questo significa che proviamo la stringaTU. Poiché nessun'altra stringa inizia con quella, usiamoTU.Mercoledì è
W, giovedì èThe venerdì èF.
Altri esempi:
Input: "one,two,three,four,five,six,seven"
Output: "o,tw,th,fo,fi,si,se"
Input: "red,orange,yellow,green,blue,purple"
Output: "r,o,y,g,b,p"
Input: "a,ab,abc"
Output: Not valid! No abbreviation for `a` that doesn't apply to the other items.
Gli appunti:
Fai input e output in modo ragionevole.
Puoi presumere che l'input sarà sempre un array valido di stringhe.
Puoi presumere che ci sarà sempre una soluzione, a differenza dell'ultimo caso di test.
Le stringhe consistono solo di ASCII stampabili (o dei caratteri stampabili nella codifica)
Questo è il codice golf, quindi vincono meno byte!
Uper martedì, ma un minuscolo hper giovedì.