रूम नंबर लोकेटर
मैं एक दिलचस्प समस्या को सुलझाने की तकनीक पर आया हूं जब एक बैठक के लिए एक सहकर्मी से गलत कमरा नंबर दिया गया था। हर अब और फिर, एक बैठक के रास्ते पर, मेरी टीम में एक सदस्य मुझे गलत कमरा नंबर भेजेगा, आम तौर पर क्योंकि वे अपने डेस्क पर एक भीड़ में हैं और गलत कुंजी को उंगली करते हैं।
दिलचस्प बात यह है कि गलत कमरे में आने पर, मैं आमतौर पर अंदाजा लगा सकता हूं कि वास्तव में वे किस कमरे में न्यूमेरिक कीपैड की कल्पना कर रहे थे :
![]()
और आसन्न संख्या का अनुमान लगाकर वे प्रेस करने के लिए थे।
चुनौती
आपकी चुनौती एक फ़ंक्शन लिखना है जो एक बिल्डिंग ऑफिस नंबर (000-999) लेता है और संभावित टाइपो समाधानों को आउटपुट करता है, यह मानते हुए कि आपका सहयोगी केवल एक अंक गलत करता है ।
निम्न तालिका से पता चलता है कि कौन सी संख्या एक दूसरे के पास एक संख्यात्मक कीपैड पर हैं:
0 -> 1,2
1 -> 0,2,4
2 -> 0,1,3,5
3 -> 2,6
4 -> 1,5,7
5 -> 2,4,6,8
6 -> 3,5,9
7 -> 4,8
8 -> 5,7,9
9 -> 6,8
इनपुट
एक 3 अंकों की संख्या 000-999:। बिल्कुल 3 अंकों का इनपुट मानें। यदि संख्या 100 से कम है या 10 से कम है, तो आपको अग्रणी शून्य दिया जाएगा। (यानी 004 और 028)।
उत्पादन
संभावित कमरों की एक सूची। यह किसी भी रूप में आप चाहते हैं, जब तक कि कमरे की संख्या के बीच एक सीमांकक हो। (यानी स्थान, अल्पविराम, नई पंक्ति, आदि ..) यदि संख्या 100 से कम है या 10 से कम है, तो आप आउटपुट के रूप में अग्रणी शून्य नहीं कर सकते हैं या नहीं कर सकते हैं। (यानी 004 हो सकता है 004 04 4, और 028 हो सकता है 028 28)
परीक्षण मामले (अग्रणी शून्य वैकल्पिक हैं):
008 -> 108, 208, 018, 028, 005, 007, 009
123 -> 023, 223, 423, 103, 113, 133, 153, 122, 126
585 -> 285, 485, 685, 885, 555, 575, 595, 582, 584, 586, 588
777 -> 477, 877, 747, 787, 774, 778
963 -> 663, 863, 933, 953, 993, 962, 966
555 -> 255, 455, 655, 855, 525, 545, 565, 585, 552, 554, 556, 558
यह कोड-गोल्फ है , इसलिए प्रत्येक भाषा के लिए बाइट्स में सबसे छोटा कोड जीत जाता है।
933इसलिए मैंने इसे ठीक किया।
