Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのユニークなモールス信号


単語のリストがあると仮定します。ここでは、各単語を各文字のモールス信号の連結として記述できます。たとえば、「cba」という単語は「-.-..--...」と書くことができます。これは連結「-.-。」です。 | "-..." | ".-")。この種の連結は、単語の変換と呼ばれます。

International Morse Codeは、各文字が一連のドットとダッシュにマップされる標準エンコーディングを次のように定義していることを知っています。「a」は「.-」にマップされ、「b」は「-...」、「c」にマップされます。 「は「-.-。」などにマップされます。

これが英語のアルファベットの26文字すべてのリストです-

[".-"、 "-..."、"-.-。"、 "-.."、"。"、 "..-。"、"-。"、 "...."、 ".."、 ".---"、 "-.-"、 ".- .."、 "-"、"-。"、 "---"、 ".--。"、 "- -.- "、".-。"、" ... "、"-"、" ..- "、" ...- "、" .-- "、" -..- "、"-。 -"、"-.. "]

したがって、入力が["gin"、 "zen"、 "gig"、 "msg"]の場合、各単語の変換は次のようになり、出力は2になります。"gin"は"-.. .-。"、"zen"は"--...-。"になります「ギグ」は「--...--」になります。 「msg」は「--...--。」になります。

これを解決するには、次の手順に従います-

  • morse_codes:=[".-"、 "-..."、"-.-。"、 "-.."、"。"、 "..-。"、"-。"、 " .... "、" .. "、" .--- "、" -.- "、" .- .. "、"-"、"-。 "、" --- "、" .- -。"、" --.- "、".-。"、" ... "、"-"、" ..- "、" ...- "、" .-- "、"-.. -"、" -.-- "、"-.. "]
  • s:=新しいセット
  • 単語内の各単語について、
    • temp:=空白の文字列
    • 単語のcごとに、
      • temp:=temp + morse_codes [ASCII of c --97]
    • sにtempを追加
  • sのサイズを返す

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def uniqueMorseRepresentations(self, words):
      morse_codes=[".-","-...","-.-.","-..",".","..-.","--
      .","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-
      .","...","-","..-","...-",".--","-..-","-.--","--.."]
      s=set()
      for word in words:
         temp=''
         for c in word:
            temp+=morse_codes[ord(c)-97]
         s.add(temp)
      return len(s)
ob = Solution()
print(ob.uniqueMorseRepresentations(["gin", "zen", "gig", "msg"]))

入力

["gin", "zen", "gig", "msg"]

出力

2

  1. Pythonインタープリター:ステップバイステップガイド

    Pythonインタープリターは、マシンに正しいバージョンのPythonがインストールされていることを確認しなくてもオンラインで存在するため、Pythonは非常にアクセスしやすく学習できます。この記事では、Pythonインタープリターとは何かについて説明し、オンラインで使用できる、より人気のある、初心者向けのインタープリターをいくつかリストします。 Pythonプログラムはどのように実行されますか? Pythonは、Javaと同様に、インタプリタ言語またはコンパイル言語として完全に分類することはできません。両方のほんの少しです。 この場合にコンパイルされるということは、どの

  2. Pythonコードの最適化のヒント?

    Pythonは他の準拠言語ほど高速でも効率的でもないことは誰もが知っていますが、ただし、Pythonコードがはるかに大きなワークロードを処理できることを示している大企業はたくさんあり、それほど遅くはないことを示しています。このセクションでは、正しいPythonプログラムをさらに高速かつ効率的に実行するために、覚えておくべきヒントをいくつか紹介します。 ヒント1:組み込み関数を使用する Pythonで効率的なコードを書くことはできますが、組み込み関数(Cで書かれている)に勝るものはありません。下の画像は、Python組み込み関数のリストを示しています ヒント2:Pythonの複数の代入を