HackerRank Company Logo solution in python | python practice problems for beginners with solutions

blog.softwaretechit.com
home.softwaretechit.com

python practice problems for beginners with solutions

In this Company Logo problem, we need to develop a python program that read a string as input and then we need to print the number of occurrence of each character on the output screen in descending order.

A newly opened multinational brand has decided to base their company logo on the three most common characters in the company name. They are now trying out various combinations of company names and logos based on this condition. Given a string , which is the company name in lowercase letters, your task is to find the top three most common characters in the string.

  • Print the three most common characters along with their occurrence count.
  • Sort in descending order of occurrence count.
  • If the occurrence count is the same, sort the characters in alphabetical order.

For example, according to the conditions described above,

 would have it’s logo with the letters .

Input Format

A single line of input containing the string .

Constraints

  •  has at least  distinct characters

Output Format

Print the three most common characters along with their occurrence count each on a separate line.
Sort output in descending order of occurrence count.
If the occurrence count is the same, sort the characters in alphabetical order.

Sample Input 0

aabbbccde

Sample Output 0

b 3
a 2
c 2

Explanation 0

Here, b occurs  times. It is printed first.
Both a and c occur  times. So, a is printed in the second line and c in the third line because a comes before c in the alphabet.

Note: The string  has at least  distinct characters.

Problem solution in Python 2 programming.

from sys import stdin

S = stdin.readline()
d = {}
for c in S:
if c in d:
d[c] += 1
else:
d[c] = 1

data = [[d[c],c] for c in d.keys()]
data.sort(key = lambda e: [-e[0],e[1]])

for x in range(3):
print data[x][1], data[x][0]

Problem solution in Python 3 programming.

#!/bin/python3

import math
import os
import random
import re
import sys
from collections import Counter

class OrderedCounter(Counter):
pass

if __name__ == '__main__':
[print(*c) for c in OrderedCounter(sorted(input())).most_common(3)]

Problem solution in pypy programming.

# Enter your code here. Read input from STDIN. Print output to STDOUT
from collections import Counter
string = sorted(Counter(raw_input()).items(), key= lambda x: (-x[1],x[0]))[:3]
print "n".join(x[0]+" "+str(x[1]) for x in string)

Problem solution in pypy3 programming.

from collections import Counter, OrderedDict

class OrderedCounter(Counter, OrderedDict):
pass
[print(*c) for c in OrderedCounter(sorted(input())).most_common(3)]

Leave a Reply