2016-07-30 19 views
0

は、私は、文字列与えられた最長の回文構造部分文字列を見つけるの簡単なアルゴリズムの問​​題を解決しようとしている、これはAttributeError:「ユニコード」オブジェクトが属性を持っていない「isPalindrome」

質問はPythonに新たなんです。

これは私のコードです。私はこれを呼び出し、

if isPalindrome(sub): 
        curr = max(curr, len(sub)) 

私は次のエラーを取得する、

NameError: global name 'isPalindrome' is not defined 

を変更した場合、誰かが助けることができる

AttributeError: 'unicode' object has no attribute 'isPalindrome' 

、エラーが発生します

class Solution(object): 

    def longestPalindrome(self, s): 
     """ 
     :type s: str 
     :rtype: str 
     """ 
     curr = 0 
     for i, c in enumerate(s): 
      for j in range(len(s)): 
       sub = s[i:i+j] 
       if sub.isPalindrome(): 
        curr = max(curr, len(sub)) 

     return curr 

    def isPalindrome(self, s): 
     for i, c in enumerate(s): 
      if c != s[-i -1]: 
       return False 
     return True 

私は何がうまくいかないのか理解していますそれ?

答えて

0

自己の参照を使用してメソッドを呼び出す必要があります。それは次のようになります。

if self.isPalindrome(sub): 
     curr = max(curr, len(sub)) 

sub.isPalindrome()方法がUnicode /文字列オブジェクトにバインドされていないため、動作しません

関連する問題