サムネがコーヒーの記事は書きかけです。

再帰関数による回文判定 python

パリンドロームは回文構造とも呼ばれ、後ろから読んでも前から読んでも変わらないという構造を持つ文章です。

今回は、ある文章がパリンドロームであるかを判定する関数を再帰を用いて作成してみます。

再帰を使わない場合

再帰を使わない場合はかなりシンプルです。

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)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です