यह कोड गोल्फ है। इस चुनौती के लिए, मैं एक विधि (आपको एक पूर्ण कार्यक्रम की आवश्यकता नहीं है) स्वीकार करूंगा, लेकिन विधि हस्ताक्षर बाइट की गिनती की ओर इशारा करता है और मैं पूर्ण हस्ताक्षर (एक लाम्दा नहीं) देखना चाहता हूं। विधि के लिए इनपुट 81 तत्वों के साथ एक पूर्णांक सरणी है। विधि से आउटपुट / रिटर्न वैल्यू एक स्ट्रिंग है जो एसेसी सुडोकू बोर्ड के रूप में सरणी का प्रतिनिधित्व करता है।
यदि आप एक गूढ़ भाषा या ऐसी किसी चीज़ का उपयोग कर रहे हैं, जिसमें बिलकुल विधियाँ नहीं हैं, तो आप इसे अनुकूलित कर सकते हैं, लेकिन यदि भाषा इस बात का समर्थन करती है कि मैं कुछ देखना चाहता हूँ, तो वास्तव में "वास्तविक" असंगठित प्रोग्राम में प्लग किया जा सकता है, भले ही विधि शरीर अपने आप में एक दर्द है जिसके साथ काम करना है। आवश्यकता जेली या 05AB1E जैसी भाषाओं को अवरुद्ध करने के लिए नहीं है, लेकिन जावा जैसी भाषाओं के लिए कुछ मंच बनाने के लिए आसान बनाने के लिए जो उस मंच के लिए समझ में आता है।
इनपुट के लिए, पूर्णांक मान 1-9 के स्पष्ट अर्थ होने चाहिए। ए 0 को हमेशा एक कोठरी के रूप में व्याख्यायित किया जाना चाहिए। आप एक खाली सेल के रूप में 1-9 रेंज के बाहर कुछ और भी व्याख्या कर सकते हैं, लेकिन इसकी आवश्यकता नहीं है। एरे से पोजिशनिंग पोजिशन में ऊपर बाईं ओर शुरू होता है और अगली पंक्ति में जाने से पहले प्रत्येक पंक्ति को बाएं से दाएं तक भरता है।
बक्से के लिए, मुझे बाहर की चारों ओर और प्रत्येक 3x3 क्षेत्र के बीच, और अन्य कोशिकाओं के बीच एकल लाइनें चाहिए। इन्हें रेखा खींचने वाले पात्रों के साथ खींचा जाना चाहिए (यदि आपका I / O प्रारूप वर्णों के अनुक्रम के बजाय बाइट्स के अनुक्रम के रूप में तारों का प्रतिनिधित्व करता है, तो आपको उन्हें एक प्रसिद्ध एन्कोडिंग जैसे UTF-8 या कोडपेज 347 में प्रतिनिधित्व करना चाहिए)।
इस चुनौती के लिए, मैं आपको सुडोकू पहेली उत्पन्न करने के लिए नहीं कह रहा हूं । यह फ़ंक्शन के लिए इनपुट है। मैं आपसे पहेली हल करने के लिए नहीं कह रहा हूं । मैं आपको एक स्ट्रिंग बनाने के लिए कह रहा हूं जो आपको दी गई है "ड्रा" के रूप में (संभव के रूप में कुछ बाइट्स में)।
उदाहरण इनपुट:
सरणी के लिए मान:
{ 8, 5, 0, 0, 0, 2, 4, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 2, 3, 0, 5, 0, 0, 0, 9, 0, 0 ,0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 7, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 4, 0}
मान आपकी भाषा के लिए जो भी तंत्र स्वाभाविक है उसका उपयोग कर सकते हैं: int [], ArrayList, अनुक्रम, tuple, अंकों की स्ट्रिंग, जो भी हो, जब तक आपके पास प्रत्येक सेल के इनपुट में मान हो (केवल पॉपुलेटेड कोशिकाओं के पदों के लिए कोई मानचित्र नहीं) )। याद रखें कि इनपुट की आपूर्ति की जाती है ... यह आपकी बाइट गिनती का हिस्सा नहीं है। लेकिन इनपुट किसी भी सुडोकू पहेली का प्रतिनिधित्व कर सकता है , और पहेली में एक वैध समाधान भी नहीं हो सकता है । आप ग्रहण करने के लिए है कि पहेली मिलता है है प्रिंट करने योग्य। उदाहरण के लिए, आपको 82 तत्वों के साथ कुछ नहीं मिलेगा।
आप एक उचित निश्चित-चौड़ाई वाले फ़ॉन्ट को भी ग्रहण करते हैं।
संगत आउटपुट:
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ │ 8 ║ 5 │ ║ ║ ║ 2 │ 4 │ │ │ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ 7 ║ 2 │ │ │ │ │ ║ ║ 9 │ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ │ │ │ 4 ║ │ │ │ │ │ │ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ │ │ ║ │ 1 ║ ║ 7 │ │ ║ 2 │ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ 3 ║ │ 5 │ ║ │ │ 9 │ │ │ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ │ │ 4 │ │ │ │ │ │ │ │ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ │ │ ║ ║ │ ║ │ │ │ │ │ │ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ │ │ 1 ║ 7 │ │ │ │ │ │ │ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ │ │ ║ ║ │ 3 ║ 6 │ │ 4 │ │ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝