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


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,第 4 行(

如何摆脱错误?

代码中的缩进存在多个问题 - 基本上是任何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):

在开始时,以及放入之后,您需要缩进它的所有方法。

最新更新