PRACTICE | Word Order | Python program | BUILD YOUR LOGIC AND ALGORITHUM


"Word Order"
 
 

You are given words. Some words may repeat. For each word, output its number of occurrences. The output order should correspond with the input order of appearance of the word. See the sample input/output for clarification.

Note: Each input line ends with a "\n" character.

Constraints:


The sum of the lengths of all the words do not exceed
All the words are composed of lowercase English letters only.

Input Format :


The first line contains the integer, .
The next lines each contain a word.

Output Format :


Output lines.
On the first line, output the number of distinct words from the input.
On the second line, output the number of occurrences for each distinct word according to their appearance in the input.

Sample Input :


4
bcdef
abcdefg
bcde
bcdef
Sample Output

Sample Output:


3
2 1 1

Explanation:


There are distinct words. Here, "bcdef" appears twice in the input at the first and last positions. The other words appear once each.
The order of the first appearances are "bcdef", "abcdefg" and "bcde" which corresponds to the output.


PLEASE TRY YOURSELF FIRST BEFORE SCROLLING DOWN. You might come up with a better program than the program given below.












<---------------------    A L E R T ---------------------->








THE ACTUAL PROGRAM :

 

db = {}
for i in range(int(input())):
    name = input()
    if name not in db.keys():
        db[name] = 1
    elif name in db.keys():
        db[name] = db[name] + 1
print(len(db))
for i in db.values():
    print(i, end=" ")


If you come up with a better code, feel free to post down in the comment sections below.
 
 ---------------------------------------------------------------------
 

Comments

Popular posts from this blog

Print name in a pattern | name as abbreviation | C-Program

Print Fibonacci Series using Recursion | C program :