फोन नंबर

फोन नंबर

आसान

परिचय

आप LinkLine से जुड़ चुके हैं। यह एक अग्रणी संचार कंपनी है, जो हर किसी के लिए भरोसेमंद कनेक्शन सुनिश्चित करने पर काम कर रही है। टीम के सामने एक बड़ी चुनौती है। उपयोगकर्ता फोन नंबर तरह-तरह के फॉर्मैट में भेजते हैं: डैश, स्पेस, बिंदु, कोष्ठक, और कभी-कभी प्रीफिक्स भी। कुछ नंबर मान्य होते हैं, जबकि कुछ का उपयोग करना संभव ही नहीं होता।

आपको इस अव्यवस्था को व्यवस्था में बदलना है। आप मान्य नंबरों को साफ-सुथरा करेंगे और सिस्टम में उपयोग के लिए उन्हें ठीक फॉर्मैट में ढालेंगे। साथ ही, आप हर अमान्य एंट्री को पहचानकर छाँट देंगे।

LinkLine के काम की सफलता इस बात पर निर्भर करती है कि आप काम की चीज़ों को बेकार चीज़ों से अलग कर सकें। क्या आप यह चुनौती स्वीकार करने और कनेक्शन सुचारू रूप से चलते रखने के लिए तैयार हैं?

निर्देश

फोन नंबरों को साफ कीजिए ताकि उन पर SMS संदेश भेजे जा सकें।

North American Numbering Plan (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 को ही मान्य कंट्री कोड माना जाता है।

कार्यान्वयन

Emacs Lisp ट्रैक में numbers फंक्शन के अलावा, जो फोन नंबरों को साफ करता है, आपको दो और फंक्शन लिखने होंगे: area-code और pprint।

इन अतिरिक्त फंक्शनों में से हर एक फोन नंबर को अपना एकमात्र पैरामीटर लेता है।

पहला फंक्शन area-code इनपुट से एरिया कोड निकालता है। दूसरा फंक्शन pprint इनपुट को इस फॉर्मैट की स्ट्रिंग में बदल देता है:

(NXX) NXX-XXXX

यहाँ N और X ऊपर बताए अनुसार हैं।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Emacs Lisp Exercism

फोन नंबर शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Emacs Lisp को 96 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।