Header Ad

HackerRank DefaultDict Tutorial solution in Python

In this HackerRank DefaultDict Tutorial in python problem solution, The defaultdict tool is a container in the collections class of Python. It's similar to the usual dictionary (dict) container, but the only difference is that a defaultdict will have a default value if that key has not been set yet. If you didn't use a defaultdict you'd have to check to see if that key exists, and if it doesn't, set it to what you want.

In this challenge, you will be given 2 integers, n and m. There are n words, which might repeat, in word group A. There are m words belonging to word group B. For each m words, check whether the word has appeared in group A or not. Print the indices of each occurrence of m in group A. If it does not appear, print -1.

HackerRank DefaultDict Tutorial solution in Python


Problem solution in Python 2 programming.

from collections import defaultdict
d = defaultdict(list)
n,m = map(int, raw_input().split())
for i in range(1,n+1):
    d[raw_input()].append(str(i))

for _ in range(m):
    w = raw_input()
    if w in d:
        print " ".join(d[w])
    else:
        print -1


Problem solution in Python 3 programming.

# Enter your code here. Read input from STDIN. Print output to STDOUT
from collections import defaultdict
d = defaultdict(list)
list1=[]
n, m = map(int,input().split())
for i in range(1, n+1):
    d[input()].append(str(i))


for i in range(m):
    b = input()
    if b in d: print(' '.join(d[b]))
    else: print(-1)


Problem solution in pypy programming.

# Enter your code here. Read input from STDIN. Print output to STDOUT
from collections import defaultdict
d, n = defaultdict(list), list(map(int, raw_input().split()))

for i in xrange(n[0]):
    d[raw_input()].append(i + 1)

for i in xrange(n[1]):
    print ' '.join(map(str, d[raw_input()])) or -1


Problem solution in pypy3 programming.

from collections import defaultdict
d=defaultdict(list)
n,m=map(int,input().split())
x=[]
for i in range(1,n+m+1):
    c=input()
    if(i>n):
        if(d[c]==[]):
            d[c].append(-1)
            x.append(d[c])
        else:
            x.append(d[c])
    else:
        d[c].append(i)

for i in range(m):
    print(" ".join(list(map(str,(x[i])))))


Post a Comment

0 Comments