Cel:
Biorąc pod uwagę tablicę ciągów, utwórz skrócone wersje każdego ciągu.
Specyfikacja:
W przypadku tego wyzwania skrót to pierwsze N znaków ciągu. Dla napisu abc: a, ab, i abcsą ważne skróty, a bc, a acnie są.
Biorąc pod uwagę tablicę ciągów, chcemy znaleźć najkrótszy zestaw skrótów, taki, który biorąc pod uwagę dane wejściowe i dowolny skrót, można określić, do którego elementu danych wejściowych odnosi się skrót.
Przykład:
Wkład: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
Przeszukujemy struny, zaczynając od pierwszego.
Poniedziałek jest tylko ciągiem znaków z
M, więc najkrótszym możliwym skrótem jestM.Wtorek zaczyna się
T, ale i czwartek. Oznacza to, że próbujemy łańcuchaTU. Ponieważ żadne inne ciągi nie zaczynają się od tego, używamyTU.Środa jest
W, czwartek jestThi piątek jestF.
Więcej przykładów:
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.
Uwagi:
Wprowadzasz i wyprowadzasz w dowolny rozsądny sposób.
Możesz założyć, że wejście zawsze będzie prawidłową tablicą ciągów.
Możesz założyć, że zawsze będzie rozwiązanie, w przeciwieństwie do ostatniego przypadku testowego.
Ciągi będą się składać wyłącznie z drukowalnego ASCII (lub drukowalnych znaków w twoim kodowaniu)
To jest kod golfowy, więc wygrywa najmniej bajtów!
Una wtorek, ale małe litery hna czwartek.