(यह मेरा पहला कोड-गोल्फ सवाल है)
जब मैं एक बच्चा था, मेरे पिताजी और मैंने एक गेम का आविष्कार किया, जहां हम कारों पर देखी जाने वाली लाइसेंस प्लेट को कुछ सरल शब्दों के आधार पर कुछ बिंदु दे सकते हैं:
एक ही अक्षर या संख्या की X राशि X-1 अंक देती है, उदाहरण:
22 = 1 point
aa = 1 point
5555 = 3 points
संख्या प्रत्येक अभिगृह के बगल में होनी चाहिए, इसलिए 3353
केवल 1 अंक देता है, क्योंकि 5 3 के क्रम को तोड़ता है।
आरोही या अवरोही क्रम में X संख्याओं का एक क्रम, कम से कम 3 पर, X अंक दें, उदाहरण:
123 = 3 points
9753 = 4 points
147 = 3 points
बिंदु प्रणाली केवल 1-अंकीय संख्या के लिए काम करती है, इसलिए 1919
अंक नहीं देती है, और 14710
केवल 3, (147) देती है।
दृश्यों को अधिक अंक बनाने के लिए जोड़ा जा सकता है, उदाहरण:
1135 = 4 points (1 point for 11 and 3 points for 135)
34543 = 6 points (3 points for 345 and 3 points for 543)
हालांकि आपको अतिरिक्त अंक के लिए 2 छोटे अनुक्रमों में एक बड़े अनुक्रम को काटने 1234 = 123, 234 (6 points)
की अनुमति नहीं है : अनुमति नहीं है।
लाइसेंस प्लेट द्वारा दिए गए अंकों की संख्या निर्धारित करने के लिए, आपका कार्य एक अनुक्रम दिया गया है।
डेनमार्क में, लाइसेंस प्लेट इस तरह से संरचित हैं: सीसी II III, जहां सी चरित्र है और मैं पूर्णांक है, और इस प्रकार मेरे उदाहरण इनपुट इस संरचना को प्रतिबिंबित करेंगे। यदि आप चाहें, तो आप अनुक्रम को अपनी संरचना फिट कर सकते हैं, या, यदि आप वास्तव में साहसी महसूस करते हैं, तो प्रोग्राम को लाइसेंस प्लेट की संरचना का विश्लेषण करने दें और इस प्रकार यह दुनिया भर में किसी भी प्रकार की लाइसेंस प्लेट पर काम करता है। स्पष्ट रूप से उस संरचना का वर्णन करें जिसे आप अपने उत्तर में उपयोग करने का निर्णय लेते हैं।
आप किसी भी तरह से कृपया इनपुट ले सकते हैं, या तो एक स्ट्रिंग या एक सरणी मुझे सबसे अधिक समझ में आती है।
टेस्ट इनपुट | उत्पादन:
AA 11 111 | 5
AB 15 436 | 3
OJ 82 645 | 0
UI 65 456 | 6
HH 45 670 | 5
YH 00 244 | 5
AJ 00 754 | 1
अपने स्वयं के ढांचे को चुनने की प्रकृति के कारण, या यहां तक कि सभी संरचनाओं को कवर करने के कारण, मैं जरूरी नहीं देखता कि कैसे एक विजेता को स्पष्ट रूप से निर्धारित किया जा सकता है। मुझे लगता है कि विजेता ने उस संरचना पर सबसे छोटा बाइट किया होगा जो उसने तय किया है। (और CICIC जैसा इनपुट न लें, बस इसे अपने लिए आसान बनाएं)
संपादित करें:
टिप्पणियों के कारण पूछने के लिए, मेरे पास साझा करने के लिए कुछ अतिरिक्त जानकारी है: आरोही या अवरोही संख्याओं का एक क्रम अंकगणितीय अनुक्रम को संदर्भित करता है, इसलिए X +/- a * 0, X +/- a * 1, ... X +/- a * n आदि इसलिए 3-5-7 उदाहरण के लिए 3 + 2 * 0, 3 + 2 * 1, 3 + 2 * 2. अनुक्रम नहीं है, हालांकि, 0 से शुरू करने की आवश्यकता है और न ही अंत में 0।
अधिक संस्करण:
आप किसी भी तरह से इनपुट कृपया दे सकते हैं, आपको इनपुट स्पेस, डैश या किसी अन्य चीज की आवश्यकता नहीं है जो लाइसेंस प्लेट को अधिक पठनीय बनाता है। यदि आप केवल बड़े अक्षरों या उस जैसे कुछ को स्वीकार करके बाइट्स बचा सकते हैं, तो आप ऐसा कर सकते हैं। केवल आवश्यकता यह है कि आपका कार्यक्रम एक स्ट्रिंग / सरणी / कुछ भी ले सकता है जिसमें दोनों वर्ण और संख्याएं हों, और बताए गए नियमों के अनुसार सही मात्रा में आउटपुट करें।
XX 87 654
। मैं आपके सभी परीक्षण मामलों के लिए सही था, लेकिन किसी एक के लिए गलत था .. इसे ठीक करने पर काम करना।
CCIIIII
, कोई रिक्त स्थान नहीं है), या फिर इस समस्या में एक उद्देश्य जीत मानदंड का अभाव है, जिसे हम यहां के आसपास देखते हैं। जैसे, "(और CICIC जैसा इनपुट नहीं लेना है, बस इसे अपने लिए आसान बनाना है)" बहुत व्यक्तिपरक है। एक स्वीकार्य संरचना क्या है और क्या नहीं है?
IA99999
(कोड अंकों का घटता क्रम होता है, लेकिन संख्याओं का नहीं)।