लेटर, नंबर, सिंबल, स्पेस, रिपीट


36

97 ASCII वर्ण हैं जो लोग नियमित आधार पर मुठभेड़ करते हैं। वे चार श्रेणियों में आते हैं:

  1. पत्र (कुल 52)

    ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    
  2. अंक या अंक (कुल 10)

    0123456789
    
  3. प्रतीक और विराम चिह्न (32 कुल)

    !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
    
  4. व्हॉट्सएप (कुल 3)

    स्पेस , टैब \tऔर न्यूलाइन \n। (हम नए \r\nवर्णों को एक वर्ण की तरह मानेंगे ।)

संक्षिप्तता के लिए, हम इन श्रेणियों को क्रमशः एल, एन, एस और डब्ल्यू कहेंगे।

अपने इच्छित पत्रों में से किसी भी 24 क्रमचय को चुनें LNSWऔर अपने लिए प्रोग्रामिंग टेम्पलेट बनाने के लिए इसे अनिश्चित काल तक दोहराएं।

उदाहरण के लिए, आप क्रमचय चुन सकते हैं NLWS, इसलिए आपका प्रोग्रामिंग टेम्प्लेट होगा:

NLWSNLWSNLWSNLWSNLWS...

आपको इस टेम्प्लेट के आधार पर एक प्रोग्राम या फंक्शन लिखना होगा, जहाँ:

  1. प्रत्येक Lको किसी भी अक्षर ( ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz) के साथ बदल दिया जाता है ।

  2. प्रत्येक Nको किसी भी संख्या ( 0123456789) के साथ बदल दिया जाता है ।

  3. प्रत्येक Sको किसी भी प्रतीक ( !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~) के साथ बदल दिया जाता है ।

  4. प्रत्येक Wको किसी भी व्हाट्सएप चरित्र ( \t\n) के साथ बदल दिया जाता है ।

मूल रूप से, आपके कोड को पैटर्न का पालन करना चाहिए

<letter><number><symbol><whitespace><letter><number><symbol><whitespace>...

जैसा कि प्रश्न शीर्षक से पता चलता है, अगर आप चाहें तो चार चरित्र श्रेणियों के एक अलग क्रम को चुन सकते हैं।

ध्यान दें कि:

  • एक श्रेणी के लिए प्रतिस्थापन विभिन्न वर्ण हो सकते हैं। उदाहरण के लिए 9a ^8B\t~7c\n]वैध रूप से टेम्पलेट के अनुरूप है NLWSNLWSNLWS( \tऔर \nउनका शाब्दिक वर्ण होगा)।

  • कोई कोड लंबाई प्रतिबंध नहीं हैं। जैसे 1A +2B -और 1A +2Bऔर 1A और 1सभी टेम्पलेट के अनुरूप NLWSNLWSNLWS...

आपके टेम्प्लेट-कन्फ़र्म किए गए कोड को एक अपरिष्कृत ASCII चरित्र में क्या करना चाहिए और 0 से 4 तक की संख्या को किस श्रेणी में रखा गया है, इस पर आधारित है। अर्थात्, आउटपुट 1यदि इनपुट एक अक्षर है, 2यदि एक संख्या है, 3यदि एक प्रतीक है, और 4यदि व्हाट्सएप। आउटपुट 0यदि इनपुट इनमें से कोई नहीं है (एक नियंत्रण चरित्र )।

इनपुट के लिए, आप वैकल्पिक रूप से नंबर 0 से 127 समावेशी में ले सकते हैं जो इनपुट ASCII वर्ण के कोड का प्रतिनिधित्व करता है।

इनपुट (चार कोड के रूप में) और आउटपुट जोड़े आपके कोड ठीक होना चाहिए निम्नानुसार हैं:

in out
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 4
10 4
11 0 or 4
12 0 or 4
13 0 or 4
14 0
15 0
16 0
17 0
18 0
19 0
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
28 0
29 0
30 0
31 0
32 4
33 3
34 3
35 3
36 3
37 3
38 3
39 3
40 3
41 3
42 3
43 3
44 3
45 3
46 3
47 3
48 2
49 2
50 2
51 2
52 2
53 2
54 2
55 2
56 2
57 2
58 3
59 3
60 3
61 3
62 3
63 3
64 3
65 1
66 1
67 1
68 1
69 1
70 1
71 1
72 1
73 1
74 1
75 1
76 1
77 1
78 1
79 1
80 1
81 1
82 1
83 1
84 1
85 1
86 1
87 1
88 1
89 1
90 1
91 3
92 3
93 3
94 3
95 3
96 3
97 1
98 1
99 1
100 1
101 1
102 1
103 1
104 1
105 1
106 1
107 1
108 1
109 1
110 1
111 1
112 1
113 1
114 1
115 1
116 1
117 1
118 1
119 1
120 1
121 1
122 1
123 3
124 3
125 3
126 3
127 0

इनपुट्स 11, 12, और 13 ऐसे वर्णों के अनुरूप होते हैं जिन्हें कभी-कभी व्हॉट्सएप माना जाता है, इस प्रकार उनके आउटपुट हो सकते हैं 0या 4आप चाहें।

बाइट्स में सबसे छोटा कोड जीतता है।


5
2 डी भाषा में पहले उत्तर के लिए कुकीज़।
केल्विन के शौक

2
तो बस बीएफ का उपयोग करें और अक्षरों का उपयोग करें SSSS
क्रिस्टोफर

2
यह मूल रूप से सभी पारंपरिक प्रोग्रामिंग भाषाओं को छोड़कर conventional इसके अलावा, उन भाषाओं के साथ क्या करना है जो अपने कोड पेज जैसे जेली का उपयोग करते हैं?
kennytm

1
अन्य वर्णों को अनुमति नहीं है।
केल्विन के शौक

2
एकता की जीत होगी!
क्रिस्टोफर

जवाबों:


38

हास्केल 300 बाइट्स

इस कोड में कोई अनुगामी न्यूलाइन नहीं होनी चाहिए। फ़ंक्शन m1इनपुट को एक के रूप में लेता है Charऔर एक के रूप में उत्तर देता है Char

f1 (l1 :n1 :p1 :y1 :l2 :n2 :p2 :y2 :r3 )x1 |y1 >p1 =b1 (x1 )y2 (f1 (r3 )x1 )y1 (n1 )n2 |p2 <p1 =b1 (x1 )y1 (n1 )p2 (f1 (p2 :y2 :r3 )x1 )l2 |p2 >p1 =b1 (x1 )p1 (l2 )l1 (n2 )n1
;b1 (x1 )s1 (r1 )b1 (r2 )r3 |x1 <s1 =r1 |x1 >b1 =r2 |s1 <b1 =r3
;m1 =f1 "d0 \t4 \r0 ~d3 {d1 `d3 [d1 @d3 :d2 /d3 !d4 \n0 ?d0 "

मैं ऐसी चुनौती का विरोध नहीं कर सकता था जिसका दावा किया गया था कि "पारंपरिक" भाषाओं के लिए असंभव था।

आप विवाद कर सकते हैं कि हास्केल मायने रखता है, लेकिन अधिकांश कीवर्ड और पहचानकर्ता कई वर्ण हैं और उनका उपयोग नहीं किया जा सकता है। हालाँकि, शीर्ष स्तर की फ़ंक्शन परिभाषाएँ, सूचियाँ, स्ट्रिंग शाब्दिक, सख्त तुलनाएँ, गार्ड्स के काम के साथ पैटर्न मिलान और ब्रांचिंग, जब तक कि अंक अंकों से ठीक पहले आते हैं, और यदि चिह्न भी अक्षरों से ठीक पहले आते हैं, तो हम जैसे वर्ण बच जाते हैं \tऔर \r। दुर्भाग्य से सामान्य प्रोग्रामिंग के लिए काम करने वाले क्रमबद्ध अंक संख्यात्मक शाब्दिकों की अनुमति नहीं देते हैं, इसलिए मैं किसी भी उपयोगी तरीके से नंबर प्राप्त नहीं कर सका।

यह काम किस प्रकार करता है:

  • चरित्र वर्गों के अंतराल को अंतिम पंक्ति पर स्ट्रिंग में एन्कोड किया गया है, जिसमें अधिकांश प्रतीक स्थानों पर सीमा वर्ण हैं और अधिकांश अंकों के स्थानों में परिणाम हैं, हालांकि कुछ छोरों में पैडिंग है।
  • मुख्य कार्य है m1
  • x1 चरित्र का विश्लेषण किया जा रहा है।
  • f1समारोह सूची पैटर्न मिलान के साथ स्ट्रिंग को तोड़ता है, और तीन शाखाएं हैं: जब सीमाओं प्रतीकों अंतरिक्ष से बड़े होते हैं के लिए, जब सीमाओं भाग निकले कर रहे हैं नियंत्रण छोटे स्थान की तुलना में, और अंतरिक्ष में ही करने के लिए अंतिम तुलना से निपटने के लिए पात्रों के लिए। सूची के टुकड़ों के नाम पहली शाखा के लिए महामारी हैं: पत्र, संख्या, sPace, sYmbol, Remerder।
  • b1समारोह हैंडल दो सीमा पात्रों के लिए शाखाओं में s1 < b1एक समय में।

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


1
साइट पर आपका स्वागत है! मेरा अनुमान है कि यह अधिकांश गैर-पारंपरिक भाषाओं से छोटा होगा जो वास्तव में आवश्यक परिणाम प्राप्त कर सकते हैं।
जोनाथन एलन

ग्रेट जवाब! मैंने हास्केल का उपयोग करने की कोशिश की, लेकिन थोड़ी देर बाद छोड़ दिया ...
लैकोनी

14

रेटिना , 113 बाइट्स

लेटर, नंबर, स्पेस, सिंबल, रिपीट

T1 `a0 @a0 `b1	:D0
+T1 `d9 `a2
+T1 `a9	\n9 `a4
+T1 `l9 @L9 `a1
+T1 `d9 @p9 `d3
\b4
$n3
\b3
$n2
\b2
$n1
\b1
$n0
\n

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

इसे खुद पर परखो!

रेटिना इस नौकरी के लिए एक अच्छा उपकरण की तरह लगता है: हम सभी प्रकार के पात्रों को लचीले ढंग से मंच विन्यास में उपयोग कर सकते हैं, और हमारे पास कुछ पूर्वनिर्धारित चरित्र वर्ग हैं जो उपयोगी हो सकते हैं।

मुझे लगता है कि इस समस्या को प्रतिस्थापन चरणों या लिप्यंतरण चरणों के साथ हल किया जा सकता है; मैंने Transliterations चुना है क्योंकि वे अधिक लचीले हैं और उनके पास सबसे उपयोगी चरित्र वर्ग हैं। स्रोत के पैटर्न के बारे में, मुझे \nनईलाइन्स के लिए उपयोग करने के लिए अक्षरों से ठीक पहले प्रतीकों को लगाने के लिए मजबूर किया गया था (मैं वास्तव में न्यूलाइंस के लिए अधिक व्यावहारिक ¶ का उपयोग करके एक छोटा समाधान था, लेकिन गैर-एससीआई पात्रों पर प्रतिबंध लगा दिया गया है)।

व्याख्या

पहले चरण में लिप्यंतरण हैं। हम का उपयोग करें +और 1विकल्प के रूप में पैटर्न जारी रखने के लिए, लेकिन वे चरण का परिणाम प्रभावित नहीं करेगा। वाक्यविन्यास T`from`toवर्ण के प्रत्येक वर्ण fromको उसी स्थिति में मैप करना है to। यदि इससे toकम है from, तो इसके अंतिम चरित्र को आवश्यकतानुसार दोहराया जाता है। यदि fromदोहराए गए वर्ण हैं, तो केवल प्रत्येक की पहली घटना को माना जाता है। कुछ अक्षर वर्ण वर्गों के अनुरूप हैं, उदाहरण के dलिए समान है 0123456789

T1 `a0 @a0 `b   :D0

इसके साथ, हम निम्नलिखित वर्णमालाओं के लिए "कुछ कमरा बनाने" के लिए उसी वर्ग के अन्य पात्रों के लिए कुछ पात्रों को मैप करते हैं। ( a-> b, 0-> 1, space-> tab, @-> ;)। फाइनल :D0सिर्फ एक स्माइली है: D0

+T1 `d9 `a2

हम अंकों के साथ शुरू करते हैं, dचरित्र वर्ग है 0-9, यहां हम बदल रहे हैं 0-> a, 1-9-> 2, space-> 2: अनुवाद के लिए अनुवाद 0और spaceगलत हैं, लेकिन उन पात्रों को पिछले लिप्यंतरण द्वारा समाप्त कर दिया गया है।

+T1 `a9 \n9 `a4

श्वेत रिक्ति, बदलना a-> a, ( 9, tab, \n, space) -> 49पिछले चरण में पहले ही हटा दिया गया था।

+T1 `l9 @L9 `a1

पत्र, यहां हम दो अलग-अलग वर्ण वर्गों (अधिक पूर्ण एक की कमी के lलिए ) का उपयोग करते हैं: निचले अक्षरों के लिए और Lअपरकेस अक्षरों के लिए। वे सभी 1कुछ अन्य पात्रों के साथ मैप किए जाते हैं , जो पिछले चरणों में निपटाए गए हैं

+T1 `d9 @p9 `d3

प्रतीक। चूँकि हर दूसरे वर्ग को एक अंक में बदल दिया गया है, यहाँ हम सभी अंकों को स्वयं d-> dऔर फिर सभी मुद्रण योग्य वर्णों के 3साथ p->3 । अंक भी मुद्रण योग्य वर्णों में से हैं, लेकिन पहला लिप्यंतरण जीत जाता है।

अब हमें 0पात्रों को नियंत्रित करने के लिए असाइन करने की आवश्यकता है , लेकिन मुझे उस कक्षा को स्पष्ट रूप से संबोधित करने का कोई वैध तरीका नहीं मिला है। इसके बजाय, हम प्रत्येक अंक को एकात्मक में बदल देंगे: नियंत्रण वर्ण अंक नहीं हैं और इसलिए उन्हें खाली स्ट्रिंग माना जाता है, जो कि समान 0है। दुर्भाग्य से, रेटिना में एकतरफा रूपांतरण कमांड है $*, जो एक दूसरे के पास दो प्रतीक हैं, इसलिए हम प्रतिस्थापनों का उपयोग करके "मैन्युअल रूप से" परिवर्तित करेंगे।

\b4
$n3
\b3
$n2
\b2
$n1
\b1
$n0

हमारा संयुक्त अंक है $n, जो कि न्यूलाइन्स के लिए एक प्रतिस्थापन पैटर्न है। \bएक "सीमा" से मेल खाता है, जहां एक अल्फ़ान्यूमेरिक शब्द शुरू होता है या समाप्त होता है: हमारे मामले में यह हमेशा किसी भी संख्या से पहले मेल खाएगा। हम मूल रूप से प्रत्येक संख्या nको एक नई रेखा के साथ बदल रहे हैं n-1

\n

अंत में, हम नई संख्याओं की संख्या की गणना करते हैं और वांछित परिणाम प्राप्त करते हैं।


11

कार्डिनल 2240 2224 बाइट्स

टेम्पलेट LSNW का उपयोग किया

a%1
a:1 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a+1 a+1 a+1 a+1 a.1 x.1 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a>0 a+1 a+1 a+1 a+1 a.1 x>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a+1 a+1 a+1 a.0 x>1 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a+1 a+1 a.0 x>1 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a+1 a+1 a+1 a.0 x>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a+1 a.0 x>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a+1 a+1 a+1 a.0 x>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a+1 a.0 x>1 a>1 a>1 a>1 a>1 a>1 a>1 a+1 a+1 a+1 a.0
a>1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^0 a.0

कोड में एक अनुगामी न्यूलाइन है।

यह काम किस प्रकार करता है:

इस कोड में बहुत सारे वर्ण हैं जिनका उपयोग नहीं किया गया है।
% सभी दिशाओं में एक संकेतक जारी करता है। उनमें से 3 बस एक पंक्ति के अंत में मारा और मर गए।
अंतिम पॉइंटर एक इनपुट में लेता है:
यह इनपुट तब प्रत्येक मान की तुलना 0 से 127 तक होता है।

प्रिंटों:
0 0-8 के लिए
4 9-12 के लिए
0 13-31 के लिए
4 32 के लिए
3 33-47 के लिए
2 48-57 के लिए
3 58-64 के लिए
1 65-90 के लिए
3 91-96 के लिए
97-122 के लिए 1
123-126 के लिए 3
127 के 0 पर

उपयोग किए गए ऑपरेशन:
J = अगला ऑपरेशन छोड़ें यदि गैर-शून्य
^ = ऊपर दिशा बदलें
> = बाईं ओर दिशा बदलें
- = कमी
+ = वृद्धि
: = इनपुट
% लें = प्रोग्राम शुरू होने पर पॉइंटर्स बनाएँ
x = पॉइंटर निकालें
0 = सेट सक्रिय करें सूचक का मान ०

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


7

पर्ल 5 , 293 बाइट्स

के लिए 291 बाइट्स कोड + 2 -0p

मुझे सलाह दी गई है कि कमांड-लाइन के झंडे स्वतंत्र हैं, लेकिन मैंने दृश्यता के लिए उन्हें यहां जोड़ा है, क्योंकि टीआईओ लिंक -0आसान परीक्षण के लिए शामिल नहीं है ।

y 0-a 1"a 1#a 1$a 1%a 1&a 1'a 1(a 1)a 1*a 1+a 1,a 1.a 1/a 1_a 1{a 1|a 1}a 1~a 0!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 0;s 0\s
0\t
0;s 0\d
0\r
0;s 0\w
0\n
0;y 1!a 9-a 1_a 0-Z 1;s 0\w
0\u 3\u 0;s 1\S
1\u 0\u 1;s 0\t
0\u 4\u 0;s 0\r
0\u 2\u 0;s 0\n
0\u 1\u 0

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

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

अनुक्रम क्रम का चयन विशेष रूप से मुश्किल था, लेकिन दुर्भाग्य से s///और y///किसी भी अन्य चरित्र को एक सीमांकक के रूप में स्वीकार कर सकता है इसलिए पत्र, स्थान, संख्या, प्रतीक का उपयोग करना संभव था, जो अनुमति देता है s 0...0...0;औरy 0...0...0;

एप्रोच के लिए आवश्यक पहली चीज़ थी, जो कि केवल मेल खाने के _साथ बदलनी थी , फिर बाद में आसान मिलान के लिए सभी व्हाट्सएप ( ) के साथ , सभी अंकों के साथ और सभी शेष शब्द पात्रों ( ) को बदल दें। फिर, का उपयोग करते हुए ऑपरेटर, सभी शेष प्रतीकों शब्द पात्रों में बदल रही हैं करने के लिए और अन्य सभी वर्ण (के बीच और ), 9 स्थानों नीचे स्थानांतरित कर रहे उन अक्षरों या संख्याओं में तब्दील हो। इसके बाद इन्हें दूसरे के साथ बदल दिया जाता है , पहले से बनाए गए प्रतिस्थापनों को उनके गिने हुए मानों से बदल दिया जाता है।!\w[0-9a-zA-Z]\s\t\r\w\ny///!_9a\w3


1

व्हॉट्सएप , 1332 बाइट्स

Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0! Y0!
Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0!
Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0!
Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0!
Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0!
Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! 

आदेश 1234/ LNSW(अक्षर, अंक, प्रतीक, व्हाट्सएप) है।

इसे ऑनलाइन आज़माएं (किसी वर्ण के यूनिकोड का प्रतिनिधित्व पूर्णांक के रूप में इनपुट)।

स्पष्टीकरण:

व्हॉट्सएप एक स्टैक्ड-आधारित भाषा है जहां रिक्त स्थान, टैब और नई-लाइनों को छोड़कर हर चरित्र को अनदेखा किया जाता है। यहाँ YO!( 333 बाइट्स ) के बिना एक ही कार्यक्रम है :

[S S S N
_Push_0][S N
S _Duplicate_0][T   N
T   T   _Read_STDIN_as_integer][T   T   T   _Retrieve][S N
S _Duplicate_input(9)][S N
S _Duplicate_input(10][S N
S _Duplicate_input(32)][S N
S _Duplicate_input(33-47)][S N
S _Duplicate_input(48-57)][S N
S _Duplicate_input(58-64)][S N
S _Duplicate_input(65-90)][S N
S _Duplicate_input(91-96)][S N
S _Duplicate_input(97-122)][S N
S _Duplicate_input(123-126)][S S S T    S S T   N
_Push_9][T  S S T   _Subtract][N
T   S S N
_If_0_Jump_to_Label_WHITESPACE][S S S T S T S N
_Push_10][T S S T   _Subtract][N
T   S S N
_If_0_Jump_to_Label_WHITESPACE][S S S T S S S S S N
_Push_32][T S S T   _Subtract][S N
S _Duplicate][N
T   S S N
_If_0_Jump_to_Label_WHITESPACE][N
T   T   S T N
_If_negative_Jump_to_Label_NONE][S S S T    T   S S S S N
_Push_48][T S S T   _Subtract][N
T   T   N
_If_negative_Jump_to_Label_SYMBOL][S S S T  T   T   S T S N
_Push_58][T S S T   _Subtract][N
T   T   S S N
_If_negative_Jump_to_Label_DIGIT][S S S T   S S S S S T N
_Push_65][T S S T   _Subtract][N
T   T   N
_If_negative_Jump_to_Label_SYMBOL][S S S T  S T T   S T T   N
_Push_91][T S S T   _Subtract][N
T   T   T   N
_If_negative_Jump_to_Label_LETTER][S S S T  T   S S S S T   N
_Push_97][T S S T   _Subtract][N
T   T   N
_If_negative_Jump_to_Label_SYMBOL][S S S T  T   T   T   S T T   N
_Push_123][T    S S T   _Subtract][N
T   T   T   N
_If_negative_Jump_to_Label_LETTER][S S S T  T   T   T   T   T   T   N
_Push_127][T    S S T   _Subtract][N
T   T   N
_If_negative_Jump_to_Label_SYMBOL][N
S N
S T N
_Jump_to_Label_NONE][N
S S S N
_Create_Label_WHITESPACE][S S S T   S S N
_Push_4][T  N
S T _Print_as_integer][N
N
N
_Exit][N
S S N
_Create_Label_SYMBOL][S S S T   T   N
_Push_3][T  N
S T _Print_as_integer][N
N
N
_Exit][N
S S S S N
_Create_Label_DIGIT][S S S T    S N
_Push_2][T  N
S T _Print_as_integer][N
N
N
_Exit][N
S S T   N
_Create_Label_LETTER][S S S T   N
_Push_1][T  N
S T _Print_as_integer][N
N
N
_Exit][N
S S S T N
_Create_Label_NONE][S S S N
_Push_0][T  N
S T _Print_as_integer]

पत्र S(स्थान), T(टैब), और N(नई-पंक्ति) केवल हाइलाइटिंग के रूप में जोड़े गए।
[..._some_action]केवल स्पष्टीकरण के रूप में जोड़ा गया।

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

छद्म कोड में कार्यक्रम:

If the input is 9, 10 or 32: call function WHITESPACE()
Else-if the input is below 32: call function NONE()
Else-if the input is below 48: call function SYMBOL()
Else-if the input is below 58: call function DIGIT()
Else-if the input is below 65: call function SYMBOL()
Else-if the input is below 91: call function LETTER()
Else-if the input is below 97: call function SYMBOL()
Else-if the input is below 123: call function LETTER()
Else-if the input is below 127: call function SYMBOL()
Else (the input is 127 or higher): call function NONE()

WHITESPACE():
  Print 4
  Exit program
SYMBOL():
  Print 3
  Exit program
DIGIT():
  Print 2
  Exit program
LETTER():
  Print 1
  Exit program
NONE():
  Print 0
  (Implicit exit with error: Exit not defined)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.