挑战:
我的音乐收藏中有成千上万首歌曲,幸运的是,我最喜欢的播放器具有搜索功能。我也有一个美好的回忆-我可以记住收藏中每首歌曲的标题。但是,我很懒惰,不喜欢打字-每次额外的按键操作都很麻烦!
- 要隔离一首歌曲,我必须搜索的最短字符串是什么?帮我记住一个列表,以便在搜索时尽量减少键入!
这是代码高尔夫球,因此最短的代码获胜。
规则:
给定一个歌曲标题的输入列表,请生成一个受以下限制的搜索关键字列表:
- 每个歌曲标题都应有一个搜索键。
- 输出列表中的字符总数必须尽可能少。
- 我最喜欢的音乐播放器是foobar2000:
- 搜索功能不区分大小写。(
apple
与aPpLE
)。 - 每个搜索关键字必须由一个或多个“单词”组成,并且以任意顺序且以空格分隔:
- 每个单词必须是相应歌曲标题的子字符串。
- 如果多次指定相同的子字符串,则其相应的歌曲标题中必须出现多次。
- 如果子字符串本身包含空格,则该子字符串必须用引号引起来。
- 搜索功能不区分大小写。(
提示:
- 通常,对于某些歌曲标题,有多个符合规则2的搜索键。在这种情况下,任何一个键都可以,但是您会获得布朗尼点,以列出所有键。
- 您可以假设输入列表将仅使用ASCII字符,但是由于UTF-8兼容性而获得了布朗尼点。
- 规则3难以遵循吗?运作方式如下:
例:
如果我的音乐收藏只包括两张专辑,迈克尔·杰克逊的《离墙》和《颤栗》:
您可以使用上面的列表来测试您的程序。这是第二个列表的原始版本:
["Don't Stop 'Til You Get Enough","Rock with You","Working Day and Night","Get on the Floor","Off the Wall","Girlfriend","She's out of My Life","I Can't Help It","It's the Falling in Love","Burn This Disco Out","Wanna Be Startin' Somethin'","Baby Be Mine","The Girl Is Mine","Thriller","Beat It","Billie Jean","Human Nature","P.Y.T. (Pretty Young Thing)"]
["Wanta Be A Wanna B","Wanta Bea A Wanna B","Wanna Be A Wanna Bea"]
样