Ми приєдналися до LinkLine, провідної телекомунікаційної компанії, яка працює над забезпеченням надійного звʼязку для всіх. Перед командою стоїть велике завдання: користувачі надсилають номери телефонів у найрізноманітніших форматах: з дефісами, пробілами, крапками, дужками й навіть префіксами. Одні номери дійсні, а інші неможливо використати.
Наше завдання - перетворити цей хаос на лад. Ми очистимо дійсні номери й відформатуємо їх належним чином для використання в системі. Водночас ми визначимо й відфільтруємо всі недійсні записи.
Успіх роботи LinkLine залежить від нашої здатності відокремити корисне від непридатного. Чи готові ми взятися за це завдання й підтримувати безперебійний звʼязок?
Упорядковуємо номери телефонів так, щоб на них можна було надсилати SMS-повідомлення.
Північноамериканський план нумерації (NANP) - це система телефонної нумерації, яку використовують багато країн Північної Америки, як-от США, Канада чи Бермуди.
Усі країни NANP мають однаковий міжнародний код країни: 1.
Номери NANP - це десятизначні числа, які складаються з тризначного коду зони нумерації, відомого як код зони, і семизначного місцевого номера. Перші три цифри місцевого номера - це код станції, а далі йде унікальний чотиризначний номер, тобто номер абонента.
Зазвичай формат записують так:
NXX NXX-XXXX
де N - це будь-яка цифра від 2 до 9, а X - будь-яка цифра від 0 до 9.
Іноді перед ними також додають код країни (записаний як 1 або +1).
Ваше завдання - упорядкувати по-різному відформатовані номери телефонів, прибравши розділові знаки та код країни, якщо він присутній.
Наприклад, такі вхідні дані
+1 (613)-995-0253613-995-02531 613 995 0253613.995.0253мають давати на виході
6139950253
Примітка: Оскільки ця вправа стосується лише номерів телефонів, які використовуються в країнах NANP, дійсним кодом країни вважається лише 1.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Common Lisp, а також 27 концепцій92 вправи та справжнє наставництво від людей, і все це безкоштовно.