स्ट्रिंग को हॉजोराइज़ करें


48

Hodor पर शो एक धीमी गति से दिमाग लेकिन प्यारे चरित्र है गेम ऑफ़ थ्रोन्स ( वह है में किताबें पाठ्यक्रम के रूप में अच्छी तरह)। उनका अब तक का एकमात्र शब्द 'होडोर' है

हैरानी की बात है कि एक शब्दावली के बहुत अधिक नहीं होने के बावजूद, होडर हमेशा सही पूंजीकरण और विराम चिह्न के साथ पूर्ण वाक्यों में बोलता है, और वास्तव में अर्थ व्यक्त करता है।

होडोर सभी 128 ASCII वर्णों को व्यक्त करने में सक्षम है , हालांकि यह उसे हर एक को कहने के लिए एक पूरा वाक्य लेता है। प्रत्येक चरित्र में एक वाक्य के रूप में एक एकल, सटीक प्रतिनिधित्व है। एक ASCII स्ट्रिंग स्ट्रिंग में सभी वर्णों को उनके Hodor वाक्य समकक्षों में अनुवाद करके Hodorized है, फिर सभी वाक्यों को जोड़ते हुए। चूंकि सभी वर्ण सटीक वाक्यों का मानचित्र बनाते हैं, इसलिए सभी ASCII तार एक एकल, अद्वितीय हॉजर्ड प्रतिनिधित्व करते हैं।

वर्णों को विभक्त करना

होडर ने वर्णों का प्रतिनिधित्व करने वाले वाक्यों के लिए 4 अलग-अलग प्रकार के विराम चिह्नों का उपयोग करके अपने 128 अभिव्यंजक वर्णों को 32 के 4 सेटों में विभाजित किया है।

वाक्य समाप्त होता है ...

  • .यदि ASCII वर्ण कोड mod 4 0 है।
  • .[newline][newline] (एक नए पैराग्राफ के लिए) यदि कोड mod 4 1 है।
  • ? अगर कोड mod 4 2 है।
  • ! अगर कोड mod 4 3 है।

उदाहरण के लिए, एएससीआईआई वर्ण कोड b98 है, और 98 मॉड 4 2 है, इसलिए होडर की सजा bसमाप्त होना निश्चित है ?

वाक्य की सामग्री 32 अलग-अलग तारों में से एक है जिसमें केवल 'होडोर' शब्द होता है। एक विशेष विराम चिह्न प्रकार के 32 अक्षरों में से प्रत्येक एक अलग वाक्य सामग्री स्ट्रिंग के लिए नक्शा। तो 32 वाक्य सामग्री तार और 4 विराम चिह्नों के साथ, सभी 128 ASCII चरित्र को अलग-अलग Hodor वाक्यों के रूप में दर्शाया जा सकता है।

ASCII कोड सी के साथ एक चरित्र के लिए वाक्य सामग्री निर्धारित करने के लिए, गणना करें (floor(C / 4) + 16) mod 32; इस सूची में उस रेखा पर बृहदान्त्र के बाद सब कुछ वाक्य सामग्री है:

0:Hodor
1:HODOR
2:Hodor hodor
3:Hodor, hodor
4:Hodor hodor hodor
5:Hodor, hodor hodor
6:Hodor hodor hodor hodor
7:Hodor hodor, hodor hodor
8:Hodor hodor hodor hodor hodor
9:Hodor hodor, hodor hodor hodor
10:Hodor hodor hodor hodor hodor hodor
11:Hodor hodor hodor, hodor hodor hodor
12:Hodor hodor hodor hodor hodor hodor hodor
13:Hodor hodor hodor, hodor hodor hodor hodor
14:Hodor hodor hodor hodor hodor hodor hodor hodor
15:Hodor hodor hodor hodor, hodor hodor hodor hodor
16:Hodor hodor hodor hodor hodor hodor hodor hodor hodor
17:Hodor hodor hodor hodor, hodor hodor hodor hodor hodor
18:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
19:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor
20:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
21:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor
22:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
23:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor
24:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
25:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor
26:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
27:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor
28:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
29:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor
30:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
31:Hodor hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor

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

विराम चिह्नों के साथ वाक्य सामग्री जोड़ना, हम सभी 128 वर्णों के लिए होदोर वाक्य बना सकते हैं (बाईं ओर संख्या वर्ण कोड है:

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

( [newline]वास्तविक एस के साथ प्रतिस्थापित किया जाना है।

होर्डोराइजिंग स्ट्रिंग्स

एक स्ट्रिंग को हॉडराइज़ करना वास्तव में सिर्फ स्ट्रिंग के पात्रों के सभी चरित्र वाक्यों को एक साथ जोड़ना शामिल है। केवल कुछ युगल हैं:

  • एक वाक्य हर वाक्य के बाद डाला जाता है सिवाय .[newline][newline]पंक्चर वाले के और बहुत आखिरी वाक्य के अलावा।
  • यदि अंतिम वाक्य के साथ .[newline][newline]विराम चिह्न लगाया जाता है, तो विराम चिह्न बन जाता है, ...ताकि कोई अनुगामी व्हाट्सएप न हो।

उदाहरण

स्ट्रिंग के F0रूप में Hodorized है

HODOR? Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.
  • FASCII कोड 70 है। 70 मॉड 4 2 है, इसलिए पहला वाक्य समाप्त होता है ?(floor(70 / 4) + 16) mod 32है 1 इसलिए सामग्री है HODOR
  • 0ASCII कोड 48 है। 48 मॉड 4 0 है, इसलिए दूसरा वाक्य समाप्त होता है .(floor(48 / 4) + 16) mod 3228 है, इसलिए सामग्री hodorबिना किसी कॉमा के साथ मिलकर 15 है ।
  • ध्यान दें कि कोई अनुगामी स्थान नहीं है।

स्ट्रिंग के CEEरूप में Hodorized है

Hodor! HODOR.

HODOR...
  • ध्यान दें कि अंतिम वाक्य से पहले कोई स्थान नहीं है।
  • ध्यान दें कि अंतिम वाक्य विराम चिह्न को बदल दिया गया था ...

डोर

Hodor's real name is Walder.
Did you know?

के रूप में Hodorized है

Hodor hodor. Hodor hodor hodor, hodor hodor hodor! Hodor hodor, hodor hodor hodor. Hodor hodor hodor, hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor? Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor? Hodor hodor, hodor hodor hodor.

Hodor hodor hodor hodor hodor.

Hodor hodor hodor, hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor, hodor hodor hodor? Hodor hodor hodor hodor hodor.

Hodor hodor hodor, hodor hodor hodor.

Hodor hodor, hodor hodor hodor.

Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor.

Hodor hodor hodor hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor, hodor hodor! Hodor hodor hodor hodor hodor.

Hodor hodor hodor, hodor hodor hodor. Hodor hodor, hodor hodor hodor. Hodor hodor, hodor hodor hodor.

Hodor hodor hodor hodor hodor hodor hodor? Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor? Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor? HODOR. Hodor hodor hodor hodor hodor hodor.

Hodor hodor, hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor.

Hodor hodor hodor, hodor hodor hodor! Hodor hodor hodor, hodor hodor hodor hodor.

Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor! Hodor hodor hodor, hodor hodor hodor? Hodor hodor hodor, hodor hodor hodor! Hodor hodor hodor, hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor!

(यह मानते हुए कि नई रूपरेखा एक है \n)

चुनौती

एक प्रोग्राम या फ़ंक्शन लिखिए जो ASCII स्ट्रिंग में लेता है और होर्डोराइज़ करता है, जिसके परिणामस्वरूप स्ट्रिंग को प्रिंट या वापस किया जाता है। किसी भी मानक तरीके से इनपुट लें (टेक्स्ट फ़ाइल, कमांड लाइन, स्टडिन, फंक्शन आरजी से)।

सबसे कम बाइट्स के साथ समाधान जीतता है। टाईब्रेकर पहले की पोस्ट है। ( आसान बाइट काउंटर। )


1
यह चुनौती मुझे सीजन 1-4 को फिर से देखने और जो वह वास्तव में कह रही है , उसकी खोज करना चाहती है । : D
mbomb007

24
महान, हमें Ook का अगला संस्करण मिला ।
ASCIIThenANSI

8
होडोर होडर। होडोर होडर होडर, होडर होडर होडर! होडोर होडर, होडर होडर होडर। होडोर होडर होडर, होडर होडर होडर! होडर होडर होडर होडर होडर होडर होडर? Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor ...
एडम डेविस

1
@AadDavis होडर्सेप्शन!
मार्टिन एंडर

1
मैं इस प्रश्न का उत्तर HODOR के साथ दूंगा लेकिन मुझे लगता है कि मैं SE को क्रैश कर सकता हूं।
केयर्ड सिक्काहिरिंगहिंग

जवाबों:


26

Hodor! होडर होडर? होडर होडर होडर होडर होडर।

होडोर होडर होडर, होडर होडर होडर।

होडोर होडर होडर होडर होडर होडर, होडर होडर होडर होडर होडर होडर से होडर। Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor होडर। Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor होडर। Hodor Hodor Hodor Hodor Hodor Hodor, होडर Hodor Hodor Hodor Hodor Hodor होडर।

Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor Hodor होडर। होडर होडर होडर होडर होडर? होडोर होडर होडर होडर होडर होडर होडर।

होडोर होडर होडर, होडर होडर होडर होडर। होडोर होडर, होडर होडर होडर।

होडोर होडर होडर होडर होडर होडर होडर!

यह सिर्फ भाषा और आकार हेडर है !? फिर कोई बात नहीं, चलो पुराने ASCII में पोस्ट को एनकोड करें। क्षमा करें यदि आपको पोस्ट को समझने में परेशानी होती है, तो होडर।


सीजेएम, 85 बाइट्स

यहाँ मेरा प्रयास है। जब मैंने उन्हें लिखा था, तो इस कोड के कुछ हिस्सों को स्पष्ट रूप से महसूस किया गया था, इसलिए इसे हरा देने की संभावना है!

qW%{'@^4md('.X1$N?_++a"?!."XLS?f++=\(_)2md","*1$)"hodor":Ha*H@+@(2/\tS*0:X'HtHeu?}%W%

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

व्याख्या

qW%             "Read and reverse the input.";
{               "Map each character c:";
  '@^4md          "Calculate (c^64)/4, which is the sentence content determiner,
                    and c%4, which is the sentence ending determiner.";
  (               "Calculate c%4-1 for later.";
  '.X1$N?_++      "Produce the sentence ending string for the case that c%4==1,
                   which is '.' followed by two copies of:
                    - '.' if this is the first processed (last actual) character
                    - or a newline otherwise.
  a"?!."XLS?f     "Produce a list of the sentence ending strings for the cases
                   that c%4 is 2, 3, or 0, which are:
                    - '?', '!', and '.' if this is the first processed character
                    - or these punctuation marks each followed by a space
                      otherwise.";
  ++=\            "Prepend the sentence ending string for the case that c%4==1
                   to the list for the other cases and select the element at the
                   index (c%4-1)%4 as the correct sentence ending string.";
  (               "Calculate (c^64)/4-1 for later.";
  _)2md           "Calculate the quotient and remainder of the sentence content
                   content determiner divided by 2.";
  ","*            "Produce a string of commas with a length of the remainder
                   calculated above (either 0 or 1).";
  1$)"hodor":Ha*  "Produce a list of copies of 'hodor' with a length of the
                   quotient calculated above plus one.";
  H@+@(2/\t       "Append the string of commas (either empty or one comma) to
                   the middle 'hodor'.";
  S*              "Join the sentence words into a string a space between each.";
  0:X             "Signal that later characters are not the first processed.";
  'Ht             "Capitalize the first letter of the sentence (always 'h').";
  Heu             "Produce the string 'HODOR'.";
  ?               "Select the correct sentence content, which is 'HODOR' if 
                   (c^64)/4-1 is zero or the full sentence produced before that
                   otherwise.";
}%
W%              "Reverse the reversed translation to obtain the forward one.";
                "Implicitly print the result.";

1
इसे अधिक पठनीय बनाने के लिए होडर में स्पष्टीकरण पोस्ट करें।
मैजिक ऑक्टोपस Urn

102

होडर, 602 582 बाइट्स

HoDoRHoDoR HODOR! (Hodor ){r='';Hodor!? =Hodor .Hodor!? hodor? HODOR? hodor! hodor. h;HODOR{}(Hodor? =0;Hodor? <Hodor!? ;++Hodor? ){hodor =Hodor .hodor hHODOR rHodor... odhodor? hodor?!? hodor. (Hodor? );HODOR? =(0|hodor /4+16)%32;r+='H';HODOR =HHHOOODDDDOOORRR!!! hodor?!? rrHODOR HODOR!?! (0|HODOR? /2+2);HOdor!!!(HODOR? %2)HODOR [0|(HODOR? +1)/4]=',';r+=HODOR? ==1?'ODOR':HODOR .HODOR?! oHodor? HODOR? (' hodor').Hodor Hodor!? Hodor? hodor hodor? (2);r+=['. ',Hodor? ==Hodor!? -1?'....':'.\HODOR? \HODOR? ','? ','! '][hodor %4]}HODOR:: r.Hodor Hodor!? Hodor? hodor hodor? (0,-1)}

यहाँ एक ungolfed संस्करण है ... आप जानते हैं ... पठनीयता के लिए:

HoDoRHoDoR HODOR! (Hodor ){
    r='';
    Hodor!? =Hodor .Hodor!? hodor? HODOR? hodor! hodor. h;
    HODOR{}(Hodor? =0;Hodor? <Hodor!? ;++Hodor? ){
        hodor =Hodor .hodor hHODOR rHodor... odhodor? hodor?!? hodor. (Hodor? );
        HODOR? =(0|hodor /4+16)%32;
        r+='H';
        HODOR =HHHOOODDDDOOORRR!!! hodor?!? rrHODOR HODOR!?! (0|HODOR? /2+2);
        HOdor!!!(HODOR? %2)HODOR [0|(HODOR? +1)/4]=',';
        r+=HODOR? ==1?'ODOR':HODOR .HODOR?! oHodor? HODOR? (' hodor').Hodor Hodor!? Hodor? hodor hodor? (2);
        r+=['. ',Hodor? ==Hodor!? -1?'....':'.\HODOR? \HODOR? ','? ','! '][hodor %4]
    }
    HODOR:: r.Hodor Hodor!? Hodor? hodor hodor? (0,-1)
}

हां, एक भाषा है जिसे होडोर कहा जाता है । (और यह नया है।) यह अनिवार्य रूप से जावास्क्रिप्ट के लिए सिर्फ एक स्ट्रिंग प्रतिस्थापन है। संबंधित JS इस तरह दिखता है:

function f(s){
  r='';
  l=s.length;
  for(i=0;i<l;++i){
    c=s.charCodeAt(i);
    n=(0|c/4+16)%32;
    r+='H';
    a=new Array(0|n/2+2);
    if(n%2)a[0|(n+1)/4]=',';
    r+=n==1?'ODOR':a.join(' hodor').slice(2);
    r+=['. ',i==l-1?'....':'.\n\n','? ','! '][c%4]
  }
  return r.slice(0,-1)
}

इसलिए, मेरा सबमिशन एक स्ट्रिंग लेने और होडराइज्ड समकक्ष को वापस करने का एक फ़ंक्शन है।

दुर्भाग्य से, इस बारे में कोई जानकारी नहीं है कि होडोर वास्तव में कैसे काम करता है (दुभाषिया के स्रोत कोड के अलावा), लेकिन यह एक JS2HD अनुवाद स्क्रिप्ट के साथ आता है।

ध्यान दें कि स्ट्रिंग के शाब्दिक के भीतर होडोर के प्रतिस्थापन भी लागू होते हैं। तो जबकि आप उपरोक्त फ़ंक्शन को केवल कॉल कर सकते हैं

HODOR! ("CEE")

आप निम्नलिखित का भी उपयोग कर सकते हैं:

HODOR! ("Hodor... HooodorrHodor HooodorrHodor ")

कहां Hodor... HooodorrHodor HooodorrHodorसे प्रतिस्थापित किया जाएगा CEE। नोट मतलब है कि यह, कि अगर आपकी स्वयं स्ट्रिंग शामिल के कुछ रूपों Hodorआप करेंगे है यह सांकेतिक शब्दों में बदलना करने के लिए, वरना यह प्रतिस्थापित किया जाएगा। ईजी "Hodor. "वास्तव "m"में जावास्क्रिप्ट में है। पकड़ यह है कि अक्षर [dhor](असंवेदनशील रूप से) बिल्कुल भी प्रतिस्थापित नहीं होते हैं, इसलिए आप इसे एन्कोड भी नहीं कर सकते। एक समाधान शाब्दिक को विभाजित करना है, जैसे "Hod"+"or. ", प्रतिस्थापन कदम को डिकोड करने के लिए कुछ भी नहीं मिलता है।


36
इससे मुझे बहुत ख़ुशी हुई।
एलेक्स ए।

1
@AlexA। मुझे लगता है कि आपके कहने का मतलब है "होडोर? होडर होडर होडर? होडर?"
माइकइलियार

अंतिम वाक्य विराम चिह्नों के ...बजाय केवल नया वर्ण है, नहीं ....
mbomb007

1
@ mbomb007 चौथे .को किसी भी चीज़ से बदला जा सकता है। यह उस स्थान के लिए एक प्लेसहोल्डर है जो आमतौर पर वहां होता है, जिसे फाइनल के साथ हटा दिया जाता है r.slice(0,-1)
मार्टिन एंडर

1
582 बाइट्स, लेकिन होडर प्रोग्रामिंग भाषा का उपयोग करने के लिए -65535 बोनस के साथ यह उत्तर -59713 का स्कोर देता है और इस उत्तर को स्पष्ट विजेता बनाता है ;-)
जोश

5

पायथन 2, 219 198 बाइट्स

इसे यहाँ आज़माएँ

मार्टिन के जावास्क्रिप्ट के रूप में एक ही विधि का उपयोग करता है, और यह पायथन में कई बाइट्स छोटा है। मैं पायथन 2.7 के आसान पूर्णांक विभाजन का उपयोग करता हूं। कुछ गोल्फ के लिए Sp3000 के लिए धन्यवाद।

def f(s,r='',i=2):
    for j in s:c=ord(j);n=(c/4+16)%32;a=['']*(n/2+2);a[-~n/4]=','[:n%2];r+='H'+[' hodor'.join(a)[2:],'ODOR'][n==1]+['. ',['.\n\n',4*'.'][i>len(s)],'? ','! '][c%4];i+=1
    return r[:-1]

और आपके अपने मनोरंजन और मेरे अपने आनंद और जिज्ञासा के लिए ...

यहाँ यह एक मेमने के कार्य के रूप में है !!!

अजगर 2, 349

उपरोक्त प्रोग्राम के पुराने संस्करण के साथ, इसे यहाँ आज़माएँ

f=lambda s:'H'.join(['']+[('ODOR'if(ord(s[i])/4+16)%32==1 else' hodor'.join((['']*(((ord(s[i])/4+16)%32)/2+2))[:((ord(s[i])/4+16)%32+1)/4]+([',']if ord(s[i])/4%2 else[''])+(['']*(((ord(s[i])/4+16)%32)/2+2))[((ord(s[i])/4+16)%32+1)/4+1*(ord(s[i])/4%2<1):])[2:])+['. ',4*'.'if i+2>len(s)else'.\n\n','? ','! '][ord(s[i])%4]for i in range(len(s))])[:-1]

इसमें शामिल गहरी और गहरी प्रतिस्थापन के साथ-साथ कुछ अतिरिक्त रचनात्मकता।

  • हर jको बदल दिया जाता है s[i]
  • हर cको बदल दिया जाता है ord(s[i])
  • हर nको बदल दिया जाता है (ord(s[i])/4+16)%32

    • सिवाय जहां मुझे केवल जरूरत है n%2, इसलिए मैं (ord(s[i])/4%2इसके बजाय उपयोग करता हूं ।
  • अंत में, के aसाथ प्रतिस्थापित किया जाता है (['']*(((ord(s[i])/4+16)%32)/2+2))[:((ord(s[i])/4+16)%32+1)/4]+([',']if ord(s[i])/4%2 else[''])+(['']*(((ord(s[i])/4+16)%32)/2+2))[((ord(s[i])/4+16)%32+1)/4+1*(ord(s[i])/4%2<1):]

    • ऐसा इसलिए है क्योंकि हम कोई मान निर्दिष्ट नहीं कर सकते हैं, इसलिए हमें सूची को आधे में विभाजित करना होगा, सशर्त रूप से अल्पविराम को जोड़ना होगा, फिर अंतिम छमाही को जोड़ना होगा।

1
मेरा मानना ​​है कि यह 198 देता है?
Sp3000

कूल, मुझे नहीं पता था कि आप इस [:0]तरह से खाली स्ट्रिंग प्राप्त कर सकते हैं ।
mbomb007

4

MUMPS , 284 236 बाइट्स

नया संस्करण: थोड़ी देर के लिए इसे देखने के बाद मैं एक छोटा संस्करण (236 बाइट्स) लेकर आया:

H(H) S L=$L(H) F O=1:1:L D
 .S D=$A($E(H,O)),R=D#4,P=$S('R:".",R=2:"?",R=3:"!",O=L:"...",1:"."_$C(10,10)),E=D\4+16#32,(S,Q)="hodor" F F=1:1:E\2 S Q=S_$S(E#2&(F=(E\4+1)):", ",1:" ")_Q,$E(Q)="H" S:E=1 Q="HODOR"
 .W Q_P_$S(L=O:"",1:" ")
 Q

पहला संस्करण:

H(H) S L=$L(H) F O=1:1:L D
 .S S=$C(10),D=$A($E(H,O)),R=D#4,P=$S('R:".",R=2:"?",R=3:"!",O=L:"...",1:"."_S_S),E=D\4+16#32,(S,Q)="hodor ",G=6*(E+1\4) F F=1:1:E\2 S Q=S_Q
 .S Q=$E(Q,1,$L(Q)-1) S:E=1 Q="HODOR" S:E#2&(E>2) Q=$E(Q,1,G-1)_","_$E(Q,G,99) S $E(Q)="H" W Q_P_$S(L=O:"",1:" ")
 Q

धिक्कार है आपको, सीजेएम! हो सकता है कि मैं ऑब्जेक्टस्क्रिप्ट (वहाँ सूची ऑपरेटरों) का उपयोग करके कुछ बाइट्स बचा सकता हूं , लेकिन मुझे संदेह है।

यहाँ कुछ हद तक वर्बोज़ संस्करण है:

VH(H)
 F I=1:1:$L(H) D              ; iterate over input string H
 .S O=$E(H,I)                 ; O is a single char
 .S D=$A(O)                   ; ascii code (dec)
 .S R=D#4                     ; #: mod, $S: $SELECT(condition:result,cond...)
 .S P=$S(R=0:".",R=2:"?",R=3:"!",I=$L(H):"...",1:"."_$C(10)_$C(10))
 .S E=D\4+16#32               ; \: integer division
 .S (S,Q)="hodor "            ; hodor
 .F J=1:1:E\2 S Q=S_Q         ; build hodor -"list"
 .I E=1 S Q="HODOR"           ; HODOR
 .I E'=1 S Q=$E(Q,1,$L(Q)-1)  ; remove trailing _
 .;                           ; insert ,
 .I E#2,E>2 S Q=$E(Q,1,6*(E+1\4)-1)_","_$E(Q,6*(E+1\4),99)
 .S $E(Q)="H"                 ; ^h->^H
 .W Q_P_$S($L(H)=I:"",1:" ")  ; Write and remove trailing _
 Q

1

सी # 378 बाइट्स

string x(string h){string[]f={". ",".\n\n","? ","! "};string[]a=new string[32];string s="";int i,j,c=0;for(i=0;i<32;i++){a[i]="hodor";if(i==1)a[i]=a[i].ToUpper();else{for(j=0;j<i/2;j++){if(i%2==1&&j==c/2)a[i]+=",";a[i]+=" hodor";}if(i%2==1)c++;a[i]=char.ToUpper(a[i][0])+a[i].Substring(1);}}foreach(char b in h){s+=a[(int)(Math.Floor((double)b/4)+16)%32]+f[(int)b%4];}return s;}

यह मेरी पहली बार गोल्फ है, इसलिए मेरे साथ नंगे।


1
प्रोग्रामिंग पहेलियाँ और कोड गोल्फ स्टैक एक्सचेंज में आपका स्वागत है! आप इसके बजाय एकल-वर्ण फ़ंक्शन नाम का उपयोग करके कुछ बाइट्स सहेज सकते हैं hodor। आप शायद उन सभी में से कुछ को भी नहीं हटा सकते हैं, और कई रिक्त स्थान (जैसे forओडर के बाद if)। हालाँकि, आपको या तो usingनिर्देश को गिनना चाहिए Systemया पूरी तरह से योग्य बनाना चाहिए Console
मार्टिन एंडर

आपकी मदद के लिए धन्यवाद, मैं कुछ बाइट्स को सुधारने और बचाने की कोशिश करूंगा: डी।
गोनकफ़ारिया

जब सी # कोडिंग करते हैं, तो एक विशिष्ट एक्सेस संशोधक होना आवश्यक नहीं है; इसलिए आप publicकुछ बाइट्स बचाने के लिए कीवर्ड ड्रॉप कर सकते हैं । आप []सरणी को रखने वाले चर के बीच के स्थान और वास्तविक नाम को भी हटा सकते हैं । इसके अलावा, जब आप एक स्ट्रिंग में स्ट्रिंग के सभी वर्णों पर पुनरावृति करते हैं, तो एक स्ट्रिंग को चार सरणी में बदलना आवश्यक नहीं है; आप बस कर सकते हैं foreach (char c in h)
प्रोग्रामफॉक्स

1
संपादित, धन्यवाद। इसे 378 बाइट्स तक लाने का प्रबंधन करें, यह मजेदार है।
गोनैकेरिया

0

सी ++, 547 452 बाइट्स

void H(string s){string e[4]={".",".\n\n","?","!"};string r;char c,m;int n=s.size();for(int i=0;i<n;i++){r.clear();c=s.at(i);m=c%4;r.append(A(c));r.append(e[m]);if(i==n-1){int k=r.size();r.pop_back();if(m==1){r.pop_back();r.append("..");}}cout<<r.c_str();}}string A(char x){string h("Hodor");int c=((int )floor(x/4)+16)%32;int n=c;bool o=(c%2==1);if(n==1)h="HODOR";else{while(n>1){h.append("hodor");if(o&&n==(int )(c/2)){h.append(",");}n--;}}return h;}

Ungolfed:

#include <iostream>
#include <math.h>
using namespace std;
void Hodorise(string s);
string FromAscii(char c);

void Hodorise(string s)
{
string end[4] = {". ",".\n\n","? ","! "};
string res;
char c, m;
int n = s.size();
for (int i = 0; i < n; i++)
{
res.clear();
c = s.at(i);
m = c % 4;
res.append(FromAscii(c));
res.append(end[m]);
if (i == n - 1)
{
int k = res.size();
res.pop_back();
if (m == 1)
{
res.pop_back();
res.append("..");
}

}
cout << res.c_str();
}
}

string FromAscii(char c)
{
string hodor("Hodor");
int code = ((int)floor(c / 4) + 16) % 32;
int n = code;
bool odd = (code % 2 == 1);
if (n == 1)hodor = "HODOR";
else
{
while (n > 1)
{
hodor.append(" hodor");
if (odd && n==(int)(code/2))
{
hodor.append(",");
}
n--;
}
}
return hodor;
}
#define N 3
int main()
{
string x[N] = { "F0", "CEE", "Hodor's real name is Walder.\nDid you know ?" };
for (size_t i = 0; i < N; i++)
{
cout << endl << x[i].c_str() << ":\n";
Hodorise(x[i]);
}

char c;
cin >> c;
return 0;
}

1
मैं केवल 505 बाइट्स गिनता हूं। क्या आपने \r\nइसके बजाय लाइन ब्रेक की गिनती की \n? इसके अलावा, आपको उन सभी रेखाओं की सबसे अधिक आवश्यकता क्यों है?
मार्टिन एंडर

2
प्रस्तुत करने में शामिल करने की जरूरत है #include, using namespace std;आदि
Potatoswatter

उत्तर प्रस्तुत करने वाले अधिकांश लोग #include या आयात आदि को नहीं गिनते
bacchusbeale
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.