Sort by

recency

|

1662 Discussions

|

  • + 0 comments

    cool solution using Counter

    from collections import Counter
    n = int(input())
    words = [input() for _ in range(n)]
    c = Counter(words)
    print(len(c))
    print(*c.values())
    
  • + 0 comments

    One more version:-

    n = int(input())
    word_list = [input() for i in range(n)]
    
    word_dict = {}
    
    for word in word_list:
        if word_dict.get(word):
            word_dict[word] += 1
        else:
            word_dict[word] = 1
    
    print(len(word_dict.keys()))
    vals = list(word_dict.values())
    final_vals = list(map(str, vals))
    print(" ".join(final_vals))
    
  • + 0 comments
    from collections import defaultdict
    
    num_words = int(input())
    
    word_frequency: defaultdict[str, int] = defaultdict(int)
    
    for _ in range(num_words):
        word = input().strip()
        word_frequency[word] += 1
    
    print(len(word_frequency))
    
    for word in word_frequency:
        print(word_frequency[word], end=" ")
    
  • + 0 comments
    from collections import defaultdict
    
    num_words = int(input())
    
    word_frequency: defaultdict[str, int] = defaultdict(int)
    
    for _ in range(num_words):
        word = input().strip()
        word_frequency[word] += 1
    
    print(len(word_frequency))
    
    for word in word_frequency:
        print(word_frequency[word], end=" ")
    
  • + 0 comments
    from collections import OrderedDict
    
    input_dict = OrderedDict()
    
    for _ in range(int(input())):
        word = input()
        try:
            input_dict[word] += 1
        except KeyError:
            input_dict[word] = 1
    
    print(len(input_dict))
    for val in input_dict.values():
        print(val, end = " ")