Треки
/
Go
Go
/
Вправи
/
Номер телефону
Номер телефону

Номер телефону

Легка

Вступ

Ми приєдналися до LinkLine, провідної телекомунікаційної компанії, яка працює над забезпеченням надійного звʼязку для всіх. Перед командою стоїть велике завдання: користувачі надсилають номери телефонів у найрізноманітніших форматах: з дефісами, пробілами, крапками, дужками й навіть префіксами. Одні номери дійсні, а інші неможливо використати.

Наше завдання - перетворити цей хаос на лад. Ми очистимо дійсні номери й відформатуємо їх належним чином для використання в системі. Водночас ми визначимо й відфільтруємо всі недійсні записи.

Успіх роботи LinkLine залежить від нашої здатності відокремити корисне від непридатного. Чи готові ми взятися за це завдання й підтримувати безперебійний звʼязок?

Вказівки

Упорядковуємо номери телефонів так, щоб на них можна було надсилати SMS-повідомлення.

Північноамериканський план нумерації (NANP) - це система телефонної нумерації, яку використовують багато країн Північної Америки, як-от США, Канада чи Бермуди. Усі країни NANP мають однаковий міжнародний код країни: 1.

Номери NANP - це десятизначні числа, які складаються з тризначного коду зони нумерації, відомого як код зони, і семизначного місцевого номера. Перші три цифри місцевого номера - це код станції, а далі йде унікальний чотиризначний номер, тобто номер абонента.

Зазвичай формат записують так:

NXX NXX-XXXX

де N - це будь-яка цифра від 2 до 9, а X - будь-яка цифра від 0 до 9.

Іноді перед ними також додають код країни (записаний як 1 або +1).

Ваше завдання - упорядкувати по-різному відформатовані номери телефонів, прибравши розділові знаки та код країни, якщо він присутній.

Наприклад, такі вхідні дані

  • +1 (613)-995-0253
  • 613-995-0253
  • 1 613 995 0253
  • 613.995.0253

мають давати на виході

6139950253

Примітка: Оскільки ця вправа стосується лише номерів телефонів, які використовуються в країнах NANP, дійсним кодом країни вважається лише 1.

Реалізація

Крім того, функція Format() має повертати такий результат:

(613) 995-0253

а функція AreaCode() має повертати

613

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Go Exercism

Час розпочати Номер телефону?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Go, а також 34 концепції165 вправ та справжнє наставництво від людей, і все це безкоштовно.