Pythonで小文字のみを考慮して文字列が回文かどうかを判定するプログラム
問題概要
英数字からなる文字列 s が与えられます。この文字列には大文字と小文字の両方が混在している可能性があります。ここで、小文字のアルファベットのみに着目し、文字列 s が回文(前から読んでも後ろから読んでも同じ並びになる文字列)であるかどうかを判定するプログラムを作成しましょう。
入力例と出力例
たとえば、入力が s = "rLacHEec0a2r8" の場合、出力は True になります。これは、この文字列から小文字だけを取り出すと「racecar」となり、回文であるためです。
解法のアプローチ
この問題は、以下の手順で解くことができます。
- 空の文字列 x を用意します。
- 文字列 s 内の各文字 i について次の処理を行います。
- 文字 i が小文字である場合、x の末尾に i を連結します。
- 最後に、x が回文であれば True を、そうでなければ False を返します。
実装例
それでは、実際のコードを見ながら理解を深めましょう。
def solve(s):
x = ""
for i in s:
if i.islower():
x += i
return x == x[::-1]
s = "rLacHEec0a2r8"
print(solve(s))入力
"rLacHEec0a2r8"
出力
True
コードのポイント
i.islower():文字 i が小文字かどうかを判定するPythonの文字列メソッドです。数字や記号に対しては False を返すため、自動的に除外されます。x[::-1]:スライス記法を使って文字列 x を逆順にしたものです。元の文字列と逆順が一致すれば、それは回文だと言えます。
より簡潔な書き方
長い文字列を扱う場合は、ジェネレータ式と join() を組み合わせると、より効率的かつ読みやすくなります。
def solve(s):
x = "".join(c for c in s if c.islower())
return x == x[::-1]このように、まず対象となる文字だけを抽出し、その結果が回文かどうかを確認するという流れは、文字列操作の基本的かつ重要なテクニックです。
-
指定された文字列が母音回文であるかどうかを確認するPythonプログラム
はじめに この記事では、「与えられた文字列から子音をすべて取り除いたとき、残った母音だけの文字列が回文になっているかどうかを判定する」という問題を、Pythonプログラムで解く方法を解説します。 問題の概要 問題文:母音と子音の両方を含む文字列が与えられます。まず文字列からすべての子音を取り除き、その結果得られた文字列が回文(前から読んでも後ろから読んでも同じ並びになる文字列)であるかどうかを確認してください。 解決のアプローチ この問題は、以下の手順で解くことができます。 元の文字列を先頭から順に走査し、母音(a・e・i・o・u)だけを取り出して新しい文字列を作成します。 母音が1つも
-
指定された文字列がキーワードであるかどうかを確認するPythonプログラム
この記事では、指定された文字列がPythonのキーワード(予約語)であるかどうかを判定する方法について解説します。問題の概要与えられた文字列が、Pythonにおけるキーワードであるかどうかを確認する必要があります。キーワードとは、言語によって特別な用途のために予約されている単語であり、変数名や関数名などの識別子として使用することはできません。例えば「if」「for」「while」「def」などはすべてキーワードです。これらの名前を変数に使おうとすると、構文エラーが発生します。解決策:keywordモジュールの活用Pythonには標準ライブラリとしてkeywordモジュールが用意されており、これ