Frequency Queries

  • + 5 comments

    Nice work. In my code taste I would just suggest extracting command and value for less square brackets => better readability and simplify result else f.e. like:

    #!/bin/python
    import os
    from collections import Counter
    
    def freqQuery(queries):
        freq = Counter()
        cnt = Counter()
        result = []
        for action, value in queries:
            if action == 1:
                cnt[ freq[value] ] -= 1
                freq[value] += 1
                cnt[ freq[value] ] += 1
            elif action == 2:
                if freq[value] > 0:
                    cnt[ freq[value] ] -= 1
                    freq[value] -= 1
                    cnt[ freq[value] ] += 1
            else:
                result.append(1 if cnt[value] > 0 else 0)
        return result
    
    if __name__ == '__main__':
        queries = []
        for _ in xrange(int(raw_input().strip())):
            queries.append(map(int, raw_input().rstrip().split()))
        ans = freqQuery(queries)
        with open(os.environ['OUTPUT_PATH'], 'w') as fptr:
            fptr.write('\n'.join(map(str, ans)))
            fptr.write('\n')