PYTHON PROGRAM :
def to_lower(ch):
if 'A' <= ch <= 'Z':
return chr(ord(ch) + 32)
return ch
def process_log(log):
data = {}
i=0
n = len(log)
while i < n:
username = ""
domain = ""
while i < n and log[i] != '+':
username += to_lower(log[i])
i += 1
while i < n and log[i] != '@':
i += 1
i += 1
while i < n and log[i] != ' ':
domain += to_lower(log[i])
i += 1
i += 1
if username not in data:
data[username] = domain
else:
if domain not in data[username]:
data[username] += "," + domain
return data
def count_domains(data):
result = {}
for user in data:
count = 1
for ch in data[user]:
if ch == ',':
count += 1
result[user] = count
return result
log = input("Enter email log: ")
domain_data = process_log(log)
final_output = count_domains(domain_data)
for user in final_output:
print(user, final_output[user])
INPUT AND OUTPUT: