【问题标题】:How do i solve stacks and queues data structure?我如何解决堆栈和队列数据结构?
【发布时间】:2017-04-08 06:25:49
【问题描述】:
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问题

示例输入:赛车

输出:racecar 这个词是回文。

但是我收到编译错误

抱歉:TabError:缩进中制表符和空格的使用不一致(solution.py,第 4 行)

如何摆脱错误?

【问题讨论】:

  • 请检查您的问题。上课在哪里?

标签: python-3.x stack queue


【解决方案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):

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 2013-09-18
    • 2016-08-16
    • 1970-01-01
    • 2015-10-21
    相关资源
    最近更新 更多