DefaultDict Tutorial in Python HackerRank Solution

Hello Programmers, In this post, you will know how to solve the DefaultDict Tutorial in Python HackerRank Solution. This problem is a part of the HackerRank Python Programming Series.

DefaultDict Tutorial in Python HackerRank Solution
DefaultDict Tutorial in Python HackerRank Solution

One more thing to add, don’t directly look for the solutions, first try to solve the problems of Hackerrank by yourself. If you find any difficulty after trying several times, then you can look for solutions.

DefaultDict Tutorial in Python HackerRank Solution

Problem

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.

For Example :

from collections import defaultdict
d = defaultdict(list)
d['python'].append("awesome")
d['something-else'].append("not relevant")
d['python'].append("language")
for i in d.items():
    print i

This prints :

('python', ['awesome', 'language'])
('something-else', ['not relevant'])

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.

Constraints :

  • 1 <= n <= 10000
  • 1 <= m <= 100
  • 1 <= length of each word in the input <= 100

Input Format :

The first line contains integers, n and m separated by a space.
The next n lines contains the words belonging to group A.
The next m lines contains the words belonging to group B.

Output Format :

Output m lines.
The ith line should contain the 1-indexed positions of the occurrences of the ith word separated by spaces.

Sample Input :

5 2
a
a
b
a
b
a
b

Sample Output :

1 2 4
3 5

Explanation :

‘a’ appeared 3 times in positions 1, 2 and 4.
‘b’ appeared 2 times in positions 3 and 5.
In the sample problem, if ‘c’ also appeared in word group B, you would print -1.

DefaultDict Tutorial in Python HackerRank Solutions

# DefaultDict Tutorial in Python - Hacker Rank Solution
# Python 3
# Enter your code here. Read input from STDIN. Print output to STDOUT
# DefaultDict Tutorial in Python - Hacker Rank Solution START
from collections import defaultdict
n, m = map(int,input().split())
a = defaultdict(list)
for i in range(1, n + 1):
    a[input()].append(i)
for i in range(1, m + 1):
    key = input()
    if len(a[key]) > 0:
        print(" ".join(str(c) for c in a[key]))
    else:
        print(-1)

Disclaimer: The above Problem (DefaultDict Tutorial in Python) is generated by Hackerrank but the Solution is Provided by BrokenProgrammers. This tutorial is only for Educational and Learning purposes.

Next: Collections.namedtuple() in Python HackerRank Solution

Leave a Reply

Your email address will not be published. Required fields are marked *