Mục tiêu:
Đưa ra một chuỗi các chuỗi, tạo các phiên bản rút gọn của mỗi chuỗi.
Đặc điểm kỹ thuật:
Đối với thử thách này, viết tắt là N ký tự đầu tiên của chuỗi. Đối với chuỗi abc
: a
, ab
và abc
là tất cả các chữ viết tắt hợp lệ, trong khi bc
, và ac
không.
Đưa ra một chuỗi các chuỗi, chúng tôi muốn tìm tập hợp các từ viết tắt ngắn nhất, ví dụ như đưa ra đầu vào và bất kỳ chữ viết tắt nào, bạn có thể xác định mục nào của đầu vào mà từ viết tắt đang đề cập đến.
Thí dụ:
Đầu vào: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
Chúng tôi làm việc theo cách của chúng tôi thông qua các chuỗi bắt đầu với chuỗi đầu tiên.
Thứ hai chỉ là chuỗi mục với một
M
, vì vậy viết tắt ngắn nhất có thể làM
.Thứ ba bắt đầu với
T
, nhưng thứ năm cũng vậy. Điều này có nghĩa là chúng tôi thử chuỗiTU
. Vì không có chuỗi nào khác bắt đầu với điều đó, chúng tôi sử dụngTU
.Thứ tư là
W
, thứ năm làTh
, và thứ sáu làF
.
Thêm ví dụ:
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.
Ghi chú:
Bạn thực hiện đầu vào và đầu ra theo bất kỳ cách hợp lý.
Bạn có thể giả định rằng đầu vào sẽ luôn là một chuỗi các chuỗi hợp lệ.
Bạn có thể cho rằng sẽ luôn có một giải pháp, không giống như trong trường hợp thử nghiệm cuối cùng.
Chuỗi sẽ chỉ bao gồm ASCII có thể in (hoặc các ký tự có thể in trong mã hóa của bạn)
Đây là mã golf, vì vậy ít byte nhất giành chiến thắng!
U
cho thứ ba, nhưng chữ thường h
cho thứ năm.