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.
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])))))