ゴール
ディナーメニューには長い名前が付けられていることがあります。ウェイターが料理を明確に識別する略語を書く方がはるかに簡単です。
たとえば、次のリストがあるとします。
beef burger
chicken burger
chicken nuggets
略語がc n
一致しchicken nuggets
ます。
省略形はとbur
一致beef burger
しchicken burger
ます。
略語に一致する1つ以上の項目を識別する機能のプログラムを作成します。
入力
- 検索する省略された文字列。
- 検索するアイテムのリスト。
この順序を変更して、適切なデータ型を使用できます。
出力
- 略語がどの項目とも一致しない場合:
Not found
- 略語がアイテムと明確に一致する場合:省略されていないアイテムを出力します。
- 省略形があいまいに複数の項目に一致する場合:選択を明確にする単語のコンマ区切りのリストを出力し、その後に疑問符を付けます。順序は重要ではありません。追加のスペースが許可されています。
マッチングルール
略語の各単語と項目は個別に考慮されます。略語がアイテムの単語の先頭と一致する場合、そのアイテムは一致する可能性があります。省略された単語のいずれかで始まるアイテムの単語がない場合、そのアイテムは一致しません。
省略語は任意の順序にすることができます。
略語を使用して複数のアイテムの単語を照合したり、その逆を行ったりすることはできません。
略語は単語の始まりにのみ一致します。
別のアイテムのすべての単語を含むアイテムはないと仮定します。たとえば、beef burger
およびはありませんbeef cheese burger
。
テストケース
このリストを考えると:
beef burger
crispy chicken burger
grilled chicken burger
chicken nuggets
chocolate cone
strawberry cone
vanilla cone
これらの省略形は、指定された出力を示します。
fish Not found
cones Not found
chicken cone Not found
nilla Not found
v vanilla cone
be beef burger
c n chicken nuggets
b b beef burger
c b c crispy chicken burger
c b crispy,grilled?
bu beef,crispy,grilled?
or beef,crispy chicken,grilled chicken?
ch crispy,grilled,nuggets,cone?
or crispy chicken,grilled chicken,nuggets,cone?
得点
これはコードゴルフです。12日間でバイト単位の最も短い回答が承認されます。(私はそれを1週間にしたでしょうが、私はそれのためにありません。)
@Dennisは、省略された単語が複数の項目の単語と一致した場合、あいまい
—
Hand-E-Food
c b
ではcrispy chicken burger
なく一致します。「単語」とは、スペースで区切られた文字列を意味し、g c b
3つの単語も同様です。
省略形があいまいに複数の項目に一致する場合:選択を明確にする単語のコンマ区切りリストを出力します。それは、それ自体で、一致するオプションから、または略語に加えて選択することを許可する単語を参照していますか?最初の解釈で
—
Dennis
crispy,grilled,nuggets,chocolate
は、ch
テストケースに対して有効である必要がありますか?2番目の解釈でchicken,grilled
は、c b
テストケースに対して有効である必要があります。何が欠けていますか?
入力
—
Peter Taylor、
b b
beef burger
battered bacon
が与えられると、許容できる出力は何でしょうか?
v
試合vanilla cone
。