2017-04-08 3 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 i in range(l): 

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

は実際にはもう一つの大きな問題は、あなたのソリューションクラスはライン

class Solution(object): 
が欠落していることを

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

する必要があります最初に

を入力し、それを配置した後に、すべてのメソッドをインデントする必要があります。

関連する問題