2017-04-08 87 views
-1
import sys 

def __init__(self): 
    self.__stack = [] 
    self.__queue = [] 

def pushCharacter(self, ch): 
    self.__stack.append(ch) 

def enqueueCharacter(self, ch): 
    self.__queue.insert(0, ch) 


def popCharacter(self): 
    return self.__stack.pop() 

def dequeueCharacter(self): 
    return self.__queue.pop() 

s=input() 


obj=Solution() 

l=len(s) 


for i in range(l): 

obj.pushCharacter(s[i]) 
obj.enqueueCharacter(s[i]) 

isPalindrome=True 

for i in range(l // 2): 

if obj.popCharacter()!=obj.dequeueCharacter(): 

    isPalindrome=False 

    break 
    if isPalindrome: 

print("The word, "+s+", is a palindrome.") 

else: 

print("The word, "+s+", is not a palindrome.") 

這是一個問題hackerrank如何解決堆棧和隊列數據結構?

樣品輸入:賽車

輸出:字,賽車,是迴文。

但我得到的編譯錯誤爲

對不起:TabError:在縮進使用不一致的製表和空格(solution.py,線 4)

如何擺脫錯誤的?

+0

請檢查您的問題。班級在哪裏? – Himaprasoon

回答

1

你有齒痕多的問題在你的代碼 - 基本上與任何if語句,for循環,等等。它後面是它的代碼塊的一部分需要縮進的線,例如

for i in range(l): 

obj.pushCharacter(s[i]) 
obj.enqueueCharacter(s[i]) 

實際上應該是

for i in range(l): 
    obj.pushCharacter(s[i]) 
    obj.enqueueCharacter(s[i]) 

另一個大問題是,您的解決方案類缺少線

class Solution(object): 

在開始時,以及在您將它放入之後,您需要縮進其所有方法。