HackerRank Collections.deque() solution in python | python problem solution

collections.deque()

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  performance in either direction.

Click on the link to learn more about deque() methods.
Click on the link to learn more about various approaches to working with deques: Deque Recipes.

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 appendpoppopleft and appendleft methods on an empty deque .

Input Format

The first line contains an integer , the number of operations.
The next  lines contains the space separated names of methods and their values.

Constraints

Output Format

Print the space separated elements of deque .

Sample Input

6
append 1
append 2
append 3
appendleft 4
pop
popleft

Sample Output

1 2
In this Collections.deque() problem we need to develop a python program that can read integer and space separated methods on the next line. and we need to print the space-separated elements on the output screen.

Problem solution in Python 2 programming.

# Enter your code here. Read input from STDIN. Print output to STDOUT
from collections import deque
d=deque()
N=int(raw_input())
for i in range(N):
A=list(raw_input().split())
if A[0]=='append':
d.append(int(A[1]))
elif A[0]=='appendleft':
d.appendleft(int(A[1]))
elif A[0]=='pop':
d.pop()
elif A[0]=='popleft':
d.popleft()
for i in d:
print i,

Problem solution in Python 3 programming.

# Enter your code here. Read input from STDIN. Print output to STDOUT
from collections import deque
d = deque()
for _ in range(int(input())):
inp = input().split()
getattr(d, inp[0])(*[inp[1]] if len(inp) > 1 else [])
print(*[item for item in d])

Problem solution in pypy programming.

# Enter your code here. Read input from STDIN. Print output to STDOUT
from collections import deque
d = deque()
for i in range(input()):
eval('d.{0}({1})'.format(*raw_input().split()+['']))
print ' '.join(map(str,d))

Problem solution in pypy3 programming.

# https://www.hackerrank.com/challenges/py-collections-deque?h_r=next-challenge&h_v=zen

from collections import deque

d = deque()
for i in range(int(input())):

operation, *number = input().split()
if number:
num1 = int(number[0])
if operation == 'append':
d.append(num1)
elif operation == 'appendleft':
d.appendleft(num1)
elif operation == 'pop':
d.pop()
elif operation == 'popleft':
d.popleft()


for i in range(len(d)):
print(d.popleft(), end = ' ')




Leave a Reply