配列を短縮する
ゴール: 文字列の配列を指定して、各文字列の短縮バージョンを作成します。 仕様: このチャレンジでは、略語は文字列の最初の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(またはエンコード内の印刷可能な文字)のみで構成されます これはコードゴルフであるため、最少バイトが勝ちます!