Objectif:
Étant donné un tableau de chaînes, créez des versions abrégées de chaque chaîne.
Spécification:
Pour ce défi, une abréviation correspond aux N premiers caractères d'une chaîne. Pour la chaîne abc
: a
, ab
et abc
sont toutes les abréviations valides, alors que bc
, et ac
ne sont pas.
Étant donné un tableau de chaînes, nous voulons trouver l'ensemble d'abréviations le plus court, de sorte que, compte tenu de l'entrée et de toute abréviation, vous puissiez déterminer à quel élément de l'entrée à laquelle l'abréviation faisait référence.
Exemple:
Contribution: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
Nous travaillons notre chemin à travers les cordes en commençant par la première.
Lundi est uniquement la chaîne d'élément avec un
M
, donc l'abréviation la plus courte possible estM
.Mardi commence par
T
, mais jeudi aussi. Cela signifie que nous essayons la chaîneTU
. Comme aucune autre chaîne ne commence par cela, nous l'utilisonsTU
.Mercredi est
W
, jeudi estTh
et vendredi estF
.
Plus d'exemples:
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.
Remarques:
Vous effectuez des entrées et des sorties d'une manière raisonnable.
Vous pouvez supposer que l'entrée sera toujours un tableau valide de chaînes.
Vous pouvez supposer qu'il y aura toujours une solution, contrairement au dernier cas de test.
Les chaînes seront uniquement constituées de caractères ASCII imprimables (ou des caractères imprimables de votre codage)
C'est du golf de code, donc moins d'octets gagnent!
U
pour mardi, mais une minuscule h
pour jeudi.