2017-03-19 4 views
1

私はここで再帰を使用したいが、私のコードは間違っている。私が間違っているところで助けてください。これはTrueを返すだけです。再帰的ステートメントと、関数がFalseを返す条件を返さなければなりません。基本的には、私のコードを拡張したい。このPythonコードで何が問題になっていますか?

def mypalindrome(l): 
    if l==[] or len(l) == 1: 
    return(True) 
    else: 
    return(mypalindrome(l[1:-1])) 
+0

関数がfalseを返す条件はないからです。 falseを返すためには 'if'終端条件を追加する必要があります。 – shizhz

答えて

1

あなたはそのほとんどが正しいと思われます。引数を適切に呼び出して戻り値を修正するだけです。また、あなたは最初と最後の文字をチェックし、チェックが欠落している、ここでの例です:

string = "reallear" 

def mypalindrome(string): 
    if len(string) <= 1: 
     return True 
    elif string[0] == string[-1]: 
     return mypalindrome(string[1:-1]) 
    else: 
     return False 

print mypalindrome(string) 
0

ワード回文をチェックするいくつかの方法

def mypalindrome(l): 
    if len(l) < 2: 
     return True 
    if l[0] != l[-1]: 
     return False 
    return mypalindrome(l[1:-1]) 

以上のエレガントな方法

def mypalindrome(l): 
    return l == l[::-1] 
関連する問題