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

Pythonで文章をヤギラテン語(Goat Latin)に変換する方法


文字列(文)が与えられ、その中にはいくつかの単語が含まれています。各単語は小文字と大文字の英字で構成されています。この課題は、文をヤギラテン語(Goat Latin)形式に変換することです。ヤギラテン語はピッグラテン語(Pig Latin)に似た言語遊びの一種で、以下のようなルールに従って変換を行います。

  • 単語が母音で始まる場合:単語の末尾に「ma」を付け加える
  • 単語が子音で始まる場合:先頭の文字を取り除いて末尾に移動させ、その後に「ma」を付け加える
  • 文の中での単語の位置(インデックス)に応じて、1番目の単語から順に「a」を1個、2番目の単語に2個というように、末尾へ追加していく

例えば、「Adam wants to go to the university」という文を変換すると、結果は「Adammaa antswmaaa otmaaaa ogmaaaaa otmaaaaaa hetmaaaaaaa universitymaaaaaaaa」になります。

解き方のアプローチ

この問題の解法は非常にシンプルです。まず文を単語に分割し、それぞれの単語に対して上記の条件をチェックしながら、指定された処理を順番に適用していきます。

実装例

それでは、理解を深めるために以下の実装例を見てみましょう。

class Solution:
    def toGoatLatin(self, S):
        """
        :type S: str
        :rtype: str
        """
        temp = S.split(" ")
        counter = 1
        result = []
        vowel = {"a","e","i","o","u"}
        for i in temp:
            if i[0].lower() in vowel:
                x = i + "ma" + ("a"*counter)
            else:
                x = i[1:] + i[0] + "ma" + ("a"*counter)
            counter += 1
            result.append(x)
        return " ".join(c for c in result)

ob1 = Solution()
print(ob1.toGoatLatin("Adam wants to go to the university"))

入力

"Adam wants to go to the university"

出力

"Adammaa antswmaaa otmaaaa ogmaaaaa otmaaaaaa hetmaaaaaaa universitymaaaaaaaa"

コードの解説

このコードでは、まず split() メソッドを使って文をスペースで分割し、単語のリストを作成しています。次に、各単語の先頭文字を lower() で小文字に変換してから母音の集合と照合します。これにより、「Adam」のように大文字で始まる単語も正しく母音判定できます。

母音で始まる単語の場合は、元の単語に「ma」とカウンターの数だけ「a」を追加します。一方、子音で始まる単語の場合は、スライス i[1:] を使って先頭文字を末尾へ移動させてから、同様の処理を行います。カウンターは単語ごとに1ずつ増加するため、文の後ろにある単語ほど多くの「a」が付くことになります。最後に join() で全ての変換済み単語をスペース区切りで連結し、結果の文字列として返します。


  1. PythonとTkinterで作るGUI単語辞書アプリの作成方法

    この記事では、PyDictionaryモジュールとTkinterを組み合わせて、GUIベースの辞書アプリケーションを作成する方法を解説します。PyDictionaryは、単語の意味・翻訳・類義語・反義語を取得できる便利なPythonモジュールです。意味の取得にはWordNet、翻訳にはGoogle、類義語・反義語の取得にはsynonym.comを利用しています。また、依存ライブラリとしてBeautifulSoupとRequestsモジュールが必要になります。必要なモジュールのインストールまず、以下のコマンドでPyDictionaryを環境にインストールしましょう。pip install PyD

  2. PythonでWordCloud(ワードクラウド)を作成する方法

    このチュートリアルでは、テキストファイルとマスク画像を用意し、そこからワードクラウド(Word Cloud)を生成して png 形式の画像として保存するプログラムをPythonで作成します。 この処理を実装するには、以下のPythonライブラリが必要です。 ・matplotlib ・wordcloud ・numpy ・tkinter ・PIL ライブラリのセットアップ まず、必要なライブラリを次のコマンドでインストールします。 $ sudo pip3 install matplotlib $ sudo pip3 install wordcloud $ sudo apt-get install