パリンドロームは回文構造とも呼ばれ、後ろから読んでも前から読んでも変わらないという構造を持つ文章です。
今回は、ある文章がパリンドロームであるかを判定する関数を再帰を用いて作成してみます。
目次
再帰を使わない場合
再帰を使わない場合はかなりシンプルです。
def isPal(str):
if str == str[::-1]:
return True
else:
return False再帰を使用した場合
再帰を使用する場合、インデックスを2つ用意し、右端、左端から同時に1文字ずつ狭めていく方式になります。
終了条件はこれ以上探索範囲を狭めることができなくなった点です。
def isPal(str,i,j):
if j-i <=0 :
return True
elif str[i] != str[j]:
return False
return isPal(str, i+1, j-1)

