はじめに
回文とは、前向きと後ろ向きで同じように読める単語、フレーズ、数字、またはその他の文字の列です。たとえば、「racecar」は回文です。なぜなら、この単語を逆にすると、依然として「racecar」と書かれているからです。このチャレンジでは、与えられた文字列が回文かどうかをチェックする関数を書きます。
回文
文字列sを唯一のパラメータとして受け取り、sが回文の場合にはTrueを返し、それ以外の場合にはFalseを返す関数palindrome(s)を書きます。回文をチェックする際に、関数は大文字小文字の区別を無視し、英数字以外の文字も無視する必要があります。
この問題を解くには、次の手順を辿ることができます。
str.lower()を使用して文字列を小文字に変換します。re.sub()を使用して文字列からすべての英数字以外の文字を削除します。- 結果の文字列をスライス表記を使用してその逆と比較します。
from re import sub
def palindrome(s):
s = sub('[\W_]', '', s.lower())
return s == s[::-1]
palindrome('taco cat') ## True
まとめ
このチャレンジでは、与えられた文字列が回文かどうかをチェックする方法を学びました。文字列を小文字に変換し、英数字以外の文字を削除するためにstr.lower()とre.sub()を使用し、その後、スライス表記を使って結果の文字列をその逆と比較しました。