Цель:
Учитывая массив строк, создайте сокращенные версии каждой строки.
Спецификация:
Для этой задачи аббревиатура - это первые N символов строки. Для строки abc
: a
, ab
и abc
все действительные сокращения, в то время bc
, и ac
нет.
Учитывая массив строк, мы хотим найти кратчайший набор аббревиатур, чтобы, учитывая ввод и любую аббревиатуру, вы могли определить, на какой элемент ввода ссылалась аббревиатура.
Пример:
Входные данные: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
Мы проходим через струны, начиная с первой.
Понедельник - это только строка элемента со знаком
M
, поэтому самое короткое из возможных сокращенийM
.Вторник начинается с
T
четверга. Это означает, что мы пробуем строкуTU
. Поскольку никакие другие строки не начинаются с этого, мы используемTU
.Среда
W
, четвергTh
и пятницаF
.
Больше примеров:
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.
Заметки:
Вы делаете ввод и вывод любым разумным способом.
Вы можете предположить, что input всегда будет корректным массивом строк.
Вы можете предположить, что всегда будет решение, в отличие от последнего контрольного примера.
Строки будут состоять только из печатных ASCII (или печатных символов в вашей кодировке)
Это кодовый гольф, поэтому выигрывает меньшее количество байтов!
U
букву h
для вторника, но строчную букву для четверга.