Skip to content

Commit 589e559

Browse files
authored
Create 641. Design Circular Deque.py
1 parent e799397 commit 589e559

1 file changed

Lines changed: 73 additions & 0 deletions

File tree

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#
2+
3+
'''
4+
1. 아이디어 :
5+
-
6+
7+
2. 시간복잡도 :
8+
O(2000 * 1)
9+
10+
3. 자료구조/알고리즘 :
11+
Deque
12+
13+
'''
14+
from collections import deque
15+
class MyCircularDeque:
16+
max_size = 0
17+
dq = Deque()
18+
19+
def __init__(self, k: int):
20+
self.max_size = k
21+
self.dq = Deque()
22+
23+
def insertFront(self, value: int) -> bool:
24+
if len(self.dq) != self.max_size:
25+
self.dq.appendleft(value)
26+
return True
27+
return False
28+
29+
def insertLast(self, value: int) -> bool:
30+
if len(self.dq) != self.max_size:
31+
self.dq.append(value)
32+
return True
33+
return False
34+
35+
def deleteFront(self) -> bool:
36+
if self.dq:
37+
self.dq.popleft()
38+
return True
39+
return False
40+
41+
def deleteLast(self) -> bool:
42+
if self.dq:
43+
self.dq.pop()
44+
return True
45+
return False
46+
47+
def getFront(self) -> int:
48+
if self.dq:
49+
return self.dq[0]
50+
return -1
51+
52+
def getRear(self) -> int:
53+
if self.dq:
54+
return self.dq[-1]
55+
return -1
56+
57+
def isEmpty(self) -> bool:
58+
return len(self.dq) == 0
59+
60+
def isFull(self) -> bool:
61+
return len(self.dq) == self.max_size
62+
63+
64+
# Your MyCircularDeque object will be instantiated and called as such:
65+
# obj = MyCircularDeque(k)
66+
# param_1 = obj.insertFront(value)
67+
# param_2 = obj.insertLast(value)
68+
# param_3 = obj.deleteFront()
69+
# param_4 = obj.deleteLast()
70+
# param_5 = obj.getFront()
71+
# param_6 = obj.getRear()
72+
# param_7 = obj.isEmpty()
73+
# param_8 = obj.isFull()

0 commit comments

Comments
 (0)