国際標準規格のような、ドットとダッシュのシリーズからなる文字列に対応する各文字をモールス信号の符号化を定義します。「」に対応する「.-」、 『B』に対応します 『...』対応する "C" "-.-。"、などが挙げられます。
次のように便宜上、アルファベットモールス符号対応テーブルの全26個の文字です。
【 ".-"、 "..."、 "-.-。"、 " - .."、 "..-。"、 ""、 " - "、 "..."、 ".. "" .---"、 "-.-"、 ".- .."、 " - "、 " - "、 "---"、 ".."、 " - -.- " ".-"、 "..."、 " - "、 "..-"、 "...-"、 ".--"、 "-..-"、" - 。 - 」、 " - .."]
単語のリストを考えると、各単語は、モールス信号の組み合わせの各文字を書き込むことができます。例えば、 "CAB" が書かれた "-.- .. - ..." することができる(すなわち、 "-.-。" + "..." + ".-" 結合列)。私たちは、単語翻訳と呼ばれているこのような接続方法を参照してください。
我々はすべての単語の異なる単語翻訳の数を取得することができ返します。
例えば:
输入:言葉= [ "ジン"、 "禅"、 "ライブ"、 "MSG"]
出力:2
説明:
各単語翻訳、次のように:
"ジン" - > "--...-。"
"禅" - > "--...-。"
"ギグ" - > "--...--。"
"MSG" - > "--...--。"
そこ二つの異なる翻訳は、「--...-」、と「--...-- ..」
注意:
単語リストの長さが100ワードを超えることはありません。
範囲の長さの各ワードのワード[i]が[1、12]。
各ワード・ワード[i]は小文字のみが含まれています。
アイデアは、単純な問題解決トラバーサルです
C ++
クラスのソリューション{ パブリック: int型uniqueMorseRepresentations(ベクトル<文字列>&ワード){ ハッシュマップ= { ".-"、 "..."ベクトル<文字列>、、 " - .."、 " "-.-。"。 " "..-"、 " - 。。"、 "...."、 ".."、 ".---"、 "-.-"、 ".- .."、" - " " - "、 "---"、 ".--"、 "--.-"、 ".-"、 "..."、 " - 。。"、 "..-"、" ...-」、 " - "、 "-..-"、 "-.--"、 " - .."}。 unordered_set <ストリング> strResSet; //利用集合的元素唯一性去重、记录所有单词翻译的结果 (オート・ワード:ワード)のために { ストリングtempStr。 (オート&CHについて: }。
Pythonの:
クラスのソリューション: DEF uniqueMorseRepresentations(自己、言葉:リスト[STR]) - > int型: コードリスト= [ ".-"、 "-..."、 "-.-"、 " - .."、 "" 、 "..-。"、 " - "、 "...."、 ".."、 ".---"、 "-.-"、 ".- .."、 " - " 、 " - 。"、 "---"、 ".--。"、 "--.-"、 ".-。"、 "..."、 " - "、 "..-"、 "。 ..-」、 ".--"、 "-..-"、 "-.--"、 " - .."] トランス=セット() の単語での単語のため: trans.add( ''に参加。 (マップ(ラムダC:コードリスト[ORD(C)-97]、単語))) )LEN(トランスを返します