如何解决堆栈和队列数据结构?

时间:2017-04-08 06:25:50

标签: python-3.x stack queue

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.") 

这是一个黑客问题

示例输入:赛车

输出:赛车这个词是回文。

但是我的编译错误是

抱歉:TabError:缩进中标签和空格的使用不一致(solution.py,line 4)

如何摆脱错误?

1 个答案:

答案 0 :(得分: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])

另一个大问题是您的Solution类缺少行

class Solution(object):

在开始时,也在你把它放入之后你需要缩进它的所有方法。