संपादित करें: यदि आप लिस्प का उपयोग कर रहे हैं, तो मैंने बाइट्स गिनने में नीचे कुछ दिशानिर्देश दिए हैं।
उद्देश्य: किसी भी नियमित अभिव्यक्तियों के उपयोग के बिना, प्रत्येक स्ट्रिंग में गैर-अंकों पर एक स्ट्रिंग को विभाजित करने वाला सबसे छोटा फ़ंक्शन बनाएं और प्रत्येक स्ट्रिंग में केवल अंकों से मिलकर एक सरणी देता है। प्रत्येक स्ट्रिंग में अग्रणी शून्य शामिल किए जाने हैं।
वर्तमान स्टैंडिंग (श्रेणियों में अलग):
- C / C ++ / C # / Java: 68 (C) ....
- गोल्फस्क्रिप्ट / एपीएल / जे: 13 (एपीएल)
- अन्य सभी: 17 (बैश, उपयोग
tr
), 24 (रूबी)
नियम:
(मैं लंबाई के लिए माफी माँगता हूँ)
- प्रारूप एकल स्ट्रिंग तर्क के साथ एक फ़ंक्शन के रूप में होना चाहिए। सरणी के उचित वापसी के लिए आवश्यक होने पर दो अतिरिक्त तर्क जोड़े जा सकते हैं (जैसे श / csh / DOS बैच को वापसी के लिए एक अतिरिक्त चर संदर्भ की आवश्यकता होती है, आदि)।
- प्राथमिक फ़ंक्शन घोषणा की गिनती नहीं है, और न ही अन्य मानक पुस्तकालयों का आयात करता है। `# शामिल करें`, `आयात`, और` का उपयोग `गिनती नहीं है। बाकी सब करता है। इसमें `# डिफाइन` और हेल्पर फ़ंक्शंस शामिल हैं। गलतफहमी के लिए खेद है। इसे एक सहायक मार्गदर्शिका के रूप में देखें जो गिनती नहीं करता है (सी-स्टाइल सिंटैक्स में लिखा गया है)
// कुल की ओर नहीं गिना जाता है, जब तक छोड़ा नहीं जा सकता है // गैर-स्पष्ट, जावा के मानक पुस्तकालय के आधे हिस्से की तरह। # किंकर्तव्यविमूढ़ <stdio.h> कुछ आयात करें ।builtin.Class // गिनती नहीं करता है, ऊपर देखें #define printf p // कुल की ओर गिना जाता है / * कोई अन्य प्रीप्रोसेसर निर्देश इत्यादि गिनते हैं। * / int i = 0; // मायने रखता है someFunction (); // मायने रखता है char [] [] myMainSplitFunction (चार [] [] सरणी) {// की गिनती नहीं है // यहाँ सब कुछ मायने रखता है वापसी returnArray; // यह भी मायने रखता है। } // गिनती नहीं है / * यहाँ सब कुछ मायने रखता है, घोषणा सहित * / char [] [] someHelperFunction (चार [] स्ट्रिंग) { // सामान } // यह भी मायने रखता है
- आउटपुट एक स्ट्रिंग सरणी या समान होना चाहिए (जावा में सरणी सूचियां और स्वीकार्य हैं)। स्वीकार किए जाते हैं उत्पादन के उदाहरण हैं:
String[]
,char[][]
,Array
,List
, औरArray
(वस्तु)। - सरणी में केवल चर-लंबाई स्ट्रिंग प्राइमेटीज़ या स्ट्रिंग ऑब्जेक्ट्स होने चाहिए। नीचे दिए गए अपवाद के साथ, कोई भी खाली तार रिटर्न में मौजूद नहीं होना चाहिए। नोट: स्ट्रिंग्स में लगातार मिलानों की एक स्ट्रिंग होती है, जैसे नीचे उदाहरण इनपुट और आउटपुट।
- यदि कोई मिलान नहीं हैं, तो फ़ंक्शन बॉडी को वापस आना चाहिए
null
, एक खाली सरणी / सूची, या एक सरणी / सूची जिसमें एक खाली स्ट्रिंग है। - किसी भी बाहरी पुस्तकालय की अनुमति नहीं है।
- डॉस लाइन एंडिंग की गिनती एक बाइट के रूप में होती है, दो नहीं (पहले से ही मेटा में कवर की जाती है, लेकिन इस पर जोर दिया जाता है)
- और यहां सबसे बड़ा नियम: कोई नियमित अभिव्यक्ति की अनुमति नहीं है।
यह एक कोड-गोल्फ प्रश्न है, इसलिए सबसे छोटा आकार जीतता है। सौभाग्य!
और यहां कुछ उदाहरण इनपुट और आउटपुट (सी-स्टाइल से बच गए) हैं:
इनपुट: "abc123def456" आउटपुट: ["123", "456"] इनपुट: "aitew034snk582: 3c" आउटपुट: ["034", "582", "3"] इनपुट: "as5493tax54 \\ 430-52@g9.fc" आउटपुट: ["5493", "54", "430", "52", "9"] इनपुट: "sasprs] tore \" re \\ forz " आउटपुट: अशक्त, [], [""], या समान
कृपया अपने उत्तरों द्वारा कितने बाइट्स का उपयोग करें, और हमेशा की तरह, खुश गोल्फ!
लिस्प के लिए दिशानिर्देश
यहाँ क्या है और लिस्प बोलियों में गिनती नहीं है:
;;; विकल्प 1 (अशुद्ध निकालने के तार (ab); गिनती नहीं है (सामान) ;;; यहाँ सब कुछ मायने रखता है ); गिनती नहीं है ;;; विकल्प 2 (अशुद्ध निकालने के तार (स्ट्रिंग और ऑक्स (शुरू 0) (अंत 0)); गिनती नहीं है) (सामान) ;;; यहाँ सब कुछ मायने रखता है ); गिनती नहीं है।अन्य सभी लंबोदर पूरी तरह से बाइट की गिनती की ओर बढ़ते हैं।