Frequency Queries HackerRank Solution: Looking for Frequency Queries solution for Hackerrank problem? Get solution with source code and detailed explainer video.
You are given q queries. Each query is of the form two integers described below:
1 x : Insert x in your data structure.
2 y : Delete one occurence of y from your data structure, if present.
3 z : Check if any integer is present whose frequency is exactly z. If yes, print 1 else 0.
Go to problem statement
Explanation Video:
Youtube Channel partner: CodingCart
Mentor: Satyendra Jaiswal
Langauge: Python
Source Code: for freqQuery
function
# Complete the freqQuery function below.
def freqQuery(queries):
res=[]
dic=Counter() #d1
dic_val=Counter() #d2
for op, value in queries:
if op==1:
dic_val[dic[value]]-=1
dic[value]+=1
dic_val[dic[value]]+=1
elif op==2:
if dic[value]>0:
dic_val[dic[value]]-=1
dic[value]-=1
dic_val[dic[value]]+=1
else:
res.append(1 if dic_val[value] > 0 else 0)
return res
coming soon…
coming soon…
Full Source Code: Frequency Queries HackerRank Solution
#!/bin/python3
import math
import os
import random
import re
import sys
from collections import Counter
# Complete the freqQuery function below.
def freqQuery(queries):
res=[]
dic=Counter() #d1
dic_val=Counter() #d2
for op, value in queries:
if op==1:
dic_val[dic[value]]-=1
dic[value]+=1
dic_val[dic[value]]+=1
elif op==2:
if dic[value]>0:
dic_val[dic[value]]-=1
dic[value]-=1
dic_val[dic[value]]+=1
else:
res.append(1 if dic_val[value] > 0 else 0)
return res
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
q = int(input().strip())
queries = []
for _ in range(q):
queries.append(list(map(int, input().rstrip().split())))
ans = freqQuery(queries)
fptr.write('\n'.join(map(str, ans)))
fptr.write('\n')
fptr.close()
coming soon…
coming soon…
Like this article? Follow us on Facebook and LinkedIn. You can also subscribe to our Youtube Channel.
This post is in partner with CodingCart.