Navbar menu

HackerRank Python Solution - Collections Topic - deque()

  • A deque is a double-ended queue. It can be used to add or remove elements from both ends.
  • Deques support thread-safe, memory-efficient appends, and pops from either side of the deque with approximately the same O(1) performance in either direction.
Example Code:

>>> from collections import deque
>>> d = deque()
>>> d.append(1)
>>> print d
deque([1])
>>> d.appendleft(2)
>>> print d
deque([2, 1])
>>> d.clear()
>>> print d
deque([])
>>> d.extend('1')
>>> print d
deque(['1'])
>>> d.extendleft('234')
>>> print d
deque(['4', '3', '2', '1'])
>>> d.count('1')
1
>>> d.pop()
'1'
>>> print d
deque(['4', '3', '2'])
>>> d.popleft()
'4'
>>> print d
deque(['3', '2'])
>>> d.extend('7896')
>>> print d
deque(['3', '2', '7', '8', '9', '6'])
>>> d.remove('2')
>>> print d
deque(['3', '7', '8', '9', '6'])
>>> d.reverse()
>>> print d
deque(['6', '9', '8', '7', '3'])
>>> d.rotate(3)
>>> print d
deque(['8', '7', '3', '6', '9'])
Task:

Perform append, pop, pop left, and append left methods on an empty deque d.

Input Format:
  • The first line contains an integer N, the number of operations.
  • The next N lines contain the space-separated names of methods and their values.
Constraints:
  • 0 < N <= 100
Output Format:

Print the space-separated elements of deque d.

Sample Input:

6
append 1
append 2
append 3
appendleft 4
pop
popleft
Sample Output:

1 2
Solution:

from collections import deque

N = int(input())

d = deque()

for _ in range(N):
    lst = input().split()
    if len(lst) > 1:
        getattr(d,lst[0])(lst[1])
    else:
        getattr(d,lst[0])()
        
print(*[item for item in d])
Disclaimer: The problem statement is given by hackerrank.com but the solution is generated by the Geek4Tutorial admin. If there is any concern regarding this post or website, please contact us using the contact form. Thank you!

No comments:

Post a Comment