मेरा स्रोत क्रम में है, तुम्हारा है?


14

आपकी चुनौती एक प्रोग्राम, फ़ंक्शन, आदि लिखने की है जो गणना करती है कि पारित स्ट्रिंग "क्रम में" है। इसका मतलब है कि स्ट्रिंग के पात्रों में वर्ण कोड होते हैं जो सबसे छोटे से लेकर सबसे बड़े तक होते हैं। सबसे छोटा चार कोड पहले होना चाहिए। मेरा मतलब है कि सबसे कम यूनिकोड कोडपॉइंट से लेकर उच्चतम तक। इससे कोई फर्क नहीं पड़ता कि आप भाषा का उपयोग किस कोड पेज पर करते हैं।

यदि इनपुट "क्रम में" है तो आपको एक मान वापस करना होगा और दूसरा यदि यह नहीं है। मान अलग-अलग होने चाहिए, लेकिन आउटपुट मान पर कोई अन्य प्रतिबंध नहीं है। उदाहरण के लिए, आप / वापसी / आउटपुट प्रिंट कर सकते हैं trueके लिए !1AQaq¡±(क्रम में) और falseके लिए aq!QA। दो अलग-अलग मूल्यों को सत्य या मिथ्या या कुछ भी होने की आवश्यकता नहीं है, बस दो अलग-अलग मूल्य। बार-बार तार (जैसे। aa) क्रम में हैं।

आपको केवल यूनिकोड U+007E( ~) के लिए समर्थन करने की आवश्यकता है (ascii 126)

हालाँकि, आपके प्रोग्राम के वर्ण स्वयं क्रम में होने चाहिए। गुड लक और खुश आईएनजी!


आपको सत्य / झूठे मूल्यों की आवश्यकता नहीं है? दो सत्य काम करेंगे?
R

इसके अलावा, सबसे छोटा चार कोड हमेशा पहले चार पर होता है? या इसका उलटा हो सकता है?
R

12
कोड-गोल्फ ईमानदारी से प्रतिबंधित स्रोत के इस रूप के लिए एक खराब जीत की स्थिति जैसा लगता है। अधिकांश अद्वितीय पात्रों के लिए कोड गेंदबाजी अधिक दिलचस्प होगी।
f --n

1
@Pavel पॉप विपक्ष एक विशेष कार्य को किसी विशेष तरीके से प्राप्त करने के लिए अच्छी तरह से काम नहीं करता है।
डेनिस

2
क्रम में बार-बार स्ट्रिंग है? उदाहरण के लिए, "aa"क्रम में है?
3

जवाबों:


14

ब्रेकीलॉग , 2 बाइट्स

.o

इसे ऑनलाइन आज़माएं!

व्याख्या

.o
.   Assert that {the input} equals the output of the last command in the program
 o  Sort {the input}

एक पूर्ण कार्यक्रम के रूप में, एक जोरदार विफलता देता है false., कोई भी सफल रन जो किसी भी दावे का उल्लंघन नहीं करता हैtrue.


9

जेली , 2 बाइट्स

Ṣ⁼

इसे ऑनलाइन आज़माएं!

व्याख्या

Ṣ⁼
Ṣ    Sort {the input}
 ⁼   Compare that to {the input} for equality of the whole structure

⁼Ṣ सही कार्यक्षमता भी है ("सॉर्ट किए गए इनपुट की तुलना करें"), इसलिए यह केवल दो प्रोग्रामों को चलाने का मामला था, यह पता लगाने के लिए कि यह किस क्रम में था (मेरे पास निश्चित रूप से इस भाग के यूनिकोड कोड पॉइंट नहीं हैं जेली के अजीब चरित्र सेट कंठस्थ)।


जेली एन्कोडिंग में आपका सबमिशन गलत है, इसके ⁼Ṣबजाय इसकी आवश्यकता है । आप यहां जेली का कोडपेज देख सकते हैं ।
को एर्गेल्फ़र

@EriktheOutgolfer यह आसानी से तय हो गया है; ⁼Ṣबिल्कुल वैसा ही करता है Ṣ⁼
स्टीनबेरग

@steenbergh यह सबमिशन, जैसा कि अभी है, अमान्य है। भले ही यह फिक्स आसान हो, लेकिन इसे अभी तक लागू नहीं किया गया है, और यह दूसरों के लिए कोड को संपादित करने के लिए हतोत्साहित है।
एर्गेलफर को एरिक

1
@EriktheOutgolfer इस उत्तर के बारे में चर्चा मुख्य रूप से किस कोडपेज का उपयोग करने के बारे में है: चुनौती संदर्भ यूनिकोड (हालांकि स्पष्ट रूप से हमें इसका उपयोग करने के लिए नहीं कहता है) और जेली का अपना कोडपेज है। परिणाम जो भी हो, इस उत्तर को ठीक करना तुच्छ है। इसके बावजूद, मैं इस उत्तर को 'अमान्य' कहकर नहीं जाऊंगा - मैं इसे इसकी वर्तमान स्थिति में भी अस्वीकार नहीं करूंगा।
स्टीनबेरग

@steenbergh मैं या तो नीचे नहीं गया है, मैं सिर्फ ais523 को सूचित नहीं कर रहा था :)
एरिक आउटगोल्फर

9

MATL , 5 बाइट्स

GGS\a

आउटपुट 0यदि इनपुट क्रम में है, 1अन्यथा।

इसे ऑनलाइन आज़माएं!

व्याख्या

यह इनपुट से प्रत्येक चार के मापांक (कोड अंक) को उसी अनुक्रमित इनपुट में उसी सूचकांक पर गणना करता है। यदि सभी परिणाम हैं तो इनपुट केवल और केवल क्रम में है 0

उदाहरण के लिए, इनपुट स्ट्रिंग पर विचार करें BCD!। छाँटकर देता है '!BCD। कोड बिंदुओं की सरणियाँ क्रमशः [66 67 68 33]और हैं [33 66 67 68]। मोडुली की गणना करना देता है [0 1 1 33], इसलिए इनपुट क्रम में नहीं है। ध्यान दें कि कुछ परिणाम कैसे हो सकते हैं 0भले ही मान समान नहीं थे (यहां जो पहली स्थिति में होता है), लेकिन यह सभी प्रविष्टियों में तब तक नहीं हो सकता जब तक कि इनपुट क्रम में न हो ।

G     % Push input string
GS    % Push input string and sort it
\     % Modulus, element-wise. This gives all zeros iff the input was in order
a     % Any: gives 1 if any entry is non-zero. Implicitly display

8

05AB1E , 3 2 बाइट्स

मेरे स्रोत कोड के 33% को काटने के लिए केविन का धन्यवाद!

इसे ऑनलाइन आज़माएं!

स्पष्टीकरण:

      There used to be a D here for 'Duplicate stack' 
      but we now use the same input twice implicitly
 {    Sort the copy
  å   Check if the sorted copy is a substring of the original
      This will only return 1 if the original input is sorted, 0 otherwise.

D{Qभी काम करता है ...
नील ए।

1
@ NeilA. यह शायद ऐसा ही करे, लेकिन वर्ण क्रम में नहीं हैं। आवश्यकता यह है कि आपका स्रोत कोड वैसा ही टेस्ट पास करे जैसा कि डेटा करता है। यह 1 उपज चाहिए
steenbergh

1
Dसिर्फ एक अंतर्निहित इनपुट दो बार का उपयोग करके -1 के लिए हटाया जा सकता है।
केविन क्रूज़सेन


5

2sable , 2 बाइट्स

इसे ऑनलाइन आज़माएं!

व्याख्या

{    # sorted input
 Ê   # not equals (implicit input)

आउटपुट 0 यदि यह आदेश है, तो 1


1
@steenbergh: आह, चुनौती के उस हिस्से को याद किया।
एमिग्ना

1
@steenbergh: फिक्स्ड! सौभाग्य से हम किसी भी अलग मूल्य का उत्पादन कर सकते थे :)
एमिग्ना

2

अजगर, 2 बाइट्स

<S

Falseका मतलब है, सॉर्ट किया गया True

परीक्षण सूट

इसके साथ आने के लिए यह काफी अच्छा था। प्रतिबंधित स्रोत के बिना, इस समस्या का सबसे स्पष्ट समाधान, SIसॉर्टिंग के तहत अपरिवर्तनीय है। लेकिन वह हल नहीं है। फिर मैंने सोचा qS, जो दो बार इनपुट चर का उपयोग करता है, अगर यह इसके क्रमबद्ध स्वयं के बराबर है, तो यह जांचता है। लेकिन q < s, जबकि , q > Sतो यह भी काम नहीं किया। लेकिन <पहले आता है S, और एकमात्र तरीका है कि सॉर्ट किए गए संस्करण मूल से कम नहीं हो सकता है यदि मूल को सॉर्ट किया गया था, क्योंकि सॉर्ट किए गए संस्करण तत्वों का लेक्सोग्राफिक रूप से न्यूनतम क्रमचय है।


1

CGL (CGL गोल्फिंग भाषा) , 4 बाइट्स (गैर-प्रतिस्पर्धात्मक)

-:Sc

स्पष्टीकरण:

- Decrement the stack counter so the current stack is where input is put
: Split the first element of the current stack (input) into an array of single strings, make that the next stack, and increment the stack counter
S Sort the current stack
c Compare the current stack and the one before, push that to the next stack and increment the stack counter
(implicit) Output the first element of the current stack, true if in order, false if not.

गैर-प्रतिस्पर्धात्मक क्योंकि :, Sऔर cइस चुनौती के निर्माण के बाद लागू किया गया था।


क्या इस बात का सबूत है कि इस चुनौती से पहले यह भाषा बनाई गई थी?
user41805

@KritiiLithos हाँ, और यह तकनीकी रूप से एक मान्य भाषा है, लेकिन मैं इसे गैर-प्रतिस्पर्धी बनाऊंगा क्योंकि इसे पूरा करने के लिए आवश्यक कार्य इस चुनौती के बाद किए गए थे। CGL अभी भी एक कार्य प्रगति पर है, और मैं यह दिखाने के लिए चुनौतियों का उपयोग कर रहा हूं कि नए कार्यों को क्या जोड़ा जाना चाहिए।
प्रोग्रामर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.