一 思路
下面的函数不能直接用k,需要在init里定义个量然后注意长度的问题就可以完成了
二代码
class MyCircularDeque:
def __init__(self, k: int):
"""
Initialize your data structure here. Set the size of the deque to be k.
"""
self.res=k
self.p=[]
def insertFront(self, value: int) -> bool:
"""
Adds an item at the front of Deque. Return true if the operation is successful.
"""
if len(self.p)<self.res:
self.p.insert(0,value)
return True
else:
return False
def insertLast(self, value: int) -> bool:
"""
Adds an item at the rear of Deque. Return true if the operation is successful.
"""
if len(self.p)<self.res:
self.p.append(value)
//原本self.p.insert(len(self.p),value)但是这个insert插入的位置很奇怪,倒着插插到前面
return True
else:
return False
def deleteFront(self) -> bool:
"""
Deletes an item from the front of Deque. Return true if the operation is successful.
"""
if self.p:
self.p.pop(0)
return True
else:
return False
def deleteLast(self) -> bool:
"""
Deletes an item from the rear of Deque. Return true if the operation is successful.
"""
if self.p:
self.p.pop()
return True
else:
return False
def getFront(self) -> int:
"""
Get the front item from the deque.
"""
return self.p[0] if self.p else -1
def getRear(self) -> int:
"""
Get the last item from the deque.
"""
return self.p[-1] if self.p else -1
def isEmpty(self) -> bool:
"""
Checks whether the circular deque is empty or not.
"""
return len(self.p)==0
def isFull(self) -> bool:
"""
Checks whether the circular deque is full or not.
"""
return len(self.p)==self.res