文中の回文語をソートするPythonプログラム
文中に含まれる回文(パリンドローム)の単語をソートしたい場合、文字列を引数として受け取り、その文字列が回文であるかどうかを最初に判定するメソッドを定義します。その後、文中のすべての回文語を抽出してソートし、結果を出力します。
サンプルコード
以下に具体的な実装例を示します。
def check_palindrome(my_string):
if(my_string == my_string[::-1]):
return True
else:
return False
def print_sort_palindromes(my_sentence):
my_list = []
my_result = list(my_sentence.split())
for i in my_result:
if(check_palindrome(i)):
my_list.append(i)
my_list.sort()
j = 0
for i in range(len(my_result)):
if(check_palindrome(my_result[i])):
my_result[i] = my_list[j]
j = j + 1
for i in my_result:
print(i)
my_sentence = "hi madam, how are u"
print("The sentence is ")
print(my_sentence)
print("The result is :")
print_sort_palindromes(my_sentence)
出力結果
The sentence is hi madam, how are u The result is : hi madam, how are u
処理の解説
まず、文字列を引数として受け取る「check_palindrome」という名前のメソッドを定義します。
このメソッドは、スライス記法
[::-1]を使って文字列を逆順にしたものと元の文字列を比較し、回文であるかどうかを判定します。次に、文章を引数として受け取る「print_sort_palindromes」という別のメソッドを定義します。
この関数内では、まず空のリストを作成します。
split()メソッドを使って文章を空白文字で分割し、単語のリストに変換します。リストの各要素を反復処理し、文中の各単語が回文であるかどうかをチェックします。
回文であれば、その単語を先ほど作成した空のリストに追加します。
収集した回文語のリストを
sort()メソッドでアルファベット順にソートします。その後、元のリスト内の回文語の位置に、ソート済みのリストから順番に単語を代入していきます。
メソッドの外側では、対象となる文章を定義し、コンソールに表示します。
引数を渡してメソッドを呼び出すと、処理結果がコンソールに出力されます。
なお、この例では「madam」が回文として検出されています。カンマが付いたままの状態で判定・ソートされている点に注意してください。記号を除去してから判定したい場合は、strip() や正規表現を使った前処理を追加するとより堅牢なプログラムになります。
-
Pythonで挿入ソート(Insertion Sort)を実装する方法:アルゴリズムとサンプルコードを徹底解説
この記事では、Python 3.x(およびそれ以前のバージョン)における挿入ソートの実装方法について詳しく解説します。挿入ソートは、トランプの手札を整理するイメージに近い、直感的で理解しやすいソートアルゴリズムです。挿入ソートのアルゴリズム挿入ソートは以下の手順で動作します。入力要素を順番に走査し、各反復ごとにソート済みの配列部分を少しずつ拡張していきます。現在注目している要素(キー)を、ソート済み部分の中で最も大きい値と比較します。キーがその値より大きければ、要素は元の位置のまま次の要素へ進みます。そうでなければ、ソート済み配列内の正しい位置を探し出し、そこへ移動させます。具体的には、ソート
-
Pythonで選択ソートを実装する方法|仕組みとサンプルコードをわかりやすく解説
この記事では、選択ソート(Selection Sort)の基本的な仕組みと、Python 3.x(およびそれ以前のバージョン)での実装方法について解説します。 選択ソートとは 選択ソートは、ソートされていない部分から最小の要素を繰り返し見つけ出し、先頭側へ移動させることで配列全体を整列していくアルゴリズムです。処理の過程で、対象の配列は次の2つの部分配列に分けられます。 すでにソートが完了している部分配列 まだソートされていない部分配列 選択ソートの各イテレーションでは、未ソートの部分配列から最小要素を取り出し、ソート済みの部分配列の末尾に追加していきます。 アルゴリズムの動作イメー