Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.46 KB | None | 0 0
  1. # coding: utf-8
  2. import sys
  3. import re
  4.  
  5.  
  6. class Template:
  7.     def __init__(self):
  8.         self.raw = input()
  9.         self.country_code = self.raw.split(' ')[0].replace('+', '')
  10.         self.operator_code = self.raw.split(' ')[1].replace('(', '').replace(')', '')
  11.         self.number = self.raw.split(' ')[2]
  12.         self.country = self.raw.split(' ')[4]
  13.         self.operator = self.raw.split(' ')[5]
  14.         self.template = '+{} ({}) '.format(self.country_code, self.operator_code) + '{}' + ' - {} {}'.format(self.country, self.operator)
  15.         self.regex = re.compile('^' + self.country_code + self.operator_code + self.number.replace('X', '[0-9]') + '$')
  16.  
  17.     def is_match(self, number):
  18.         return bool(re.match(self.regex, number))
  19.  
  20.     def format_number(self, number):
  21.         return self.template.format(number[len(number) - len(self.number):])
  22.  
  23.  
  24. class Solve:
  25.     def __init__(self):
  26.         self.numbers_num = int(input())
  27.         self.numbers = [re.sub('[-)(+ ]', '', input()) for i in range(self.numbers_num)]
  28.         self.templates_num = int(input())
  29.         self.templates = [Template() for i in range(self.templates_num)]
  30.  
  31.     def solve(self):
  32.         for number in self.numbers:
  33.             for template in self.templates:
  34.                 if template.is_match(number):
  35.                     sys.stdout.write(template.format_number(number) + '\n')
  36.                     break
  37.  
  38.  
  39. if __name__ == '__main__':
  40.     solve = Solve()
  41.     solve.solve()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement