2016-07-30 10 views
0

Ich bin neu in Python also die Frage,Attribute: ‚Unicode‘ Objekt hat kein Attribut ‚isPalindrome‘

Ich versuche, die längste Palindrom String ein einfaches algorithmisches Problem der Suche nach einer Zeichenkette gegeben zu lösen.

Dies ist mein Code.

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

bekomme ich folgende Fehler,

NameError: global name 'isPalindrome' is not defined 

kann jemand helfen

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 

ich den Fehler,

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

Wenn ich den Anruf an diese

, ändern Ich verstehe, was schief läuft und wie ich das beheben kann es?

Antwort

0

Sie sollten die Methode unter Verwendung der self Referenz aufrufen. Das wäre:

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

sub.isPalindrome() wird nicht funktionieren, weil das Verfahren nicht auf die Unicode/string Objekt gebunden ist

Verwandte Themen