我正在执行这个涉及实现队列和堆栈结构的HackerRank挑战,在中遇到了一些关于pop()函数的奇怪行为。
https://www.hackerrank.com/challenges/30-queues-stacks/problem
class Solution:
def __init__(self):
self.queue = []
self.stack = []
def pushCharacter(self, item):
self.stack.append(item)
def enqueueCharacter(self, item):
self.queue.insert(0, item)
def popCharacter(self):
return self.stack.pop()
def dequeueCharacter(self):
return self.queue.pop()这是我的代码,但是如果我要从popCharacter()和dequeueCharacter()函数中删除返回调用,只让pop()返回值,它就不能满足测试用例的要求!pop()不显式地返回数组的最后一个值吗?这和返回pop()有什么区别?
发布于 2019-12-08 01:54:45
如果你这样做:
def popCharacter(self):
return self.stack.pop()您正在返回pop()返回的内容。但如果你这么做
def popCharacter(self):
self.stack.pop()您每次都要返回None。Python不是Bash,所以没有神奇的“返回最近的函数调用”特性。如果您想返回None以外的其他内容,则需要实际返回它。
https://stackoverflow.com/questions/59231795
复制相似问题