目标:
给定一个字符串数组,为每个字符串创建缩写版本。
规格:
对于此挑战,缩写是字符串的前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.
笔记:
您可以通过任何合理的方式进行输入和输出。
您可以假设输入将始终是有效的字符串数组。
您可以假定总会有一个解决方案,这与上一个测试用例不同。
字符串仅包含可打印的ASCII(或编码中的可打印字符)
这是代码高尔夫,所以最少的字节会赢!
U
在星期二使用大写字母,但h
在星期四使用小写字母。