- Let's dive into decorators! You are given N mobile numbers. Sort them in ascending order then print them in the standard format shown below:
+91 xxxxx xxxxx
- The mobile numbers may have +91, 91, or 0 written before the actual 10-digit number. Alternatively, there may not be any prefix at all.
- The first input line contains an integer N, the number of mobile phone numbers. N lines follow each having a mobile number.
- Print N mobile numbers on separate lines in the required format.
3
07895462130
919875641230
9195969878
Sample Output:+91 78954 62130
+91 91959 69878
+91 98756 41230
Concept:- To solve the above question, make a list of the mobile numbers and pass it to a function that sorts the array in ascending order. Make a decorator that standardizes the mobile numbers and applies them to the function.
Solution:
import re
def wrapper(f):
def fun(l):
decorated_l = ['+91 {} {}'.format(n[-10: -5], n[-5:]) for n in l]
return f(decorated_l)
return fun
@wrapper
def sort_phone(l):
print(*sorted(l), sep='\n')
if __name__ == '__main__':
l = [input() for _ in range(int(input()))]
sort_phone(l)
No comments:
Post a Comment