एक राजधानी सिफर


15

आपका कार्य एक गैर-रिक्त स्ट्रिंग को प्रिंट करने योग्य ASCII वर्णों से युक्त होता है, [32..126]

प्रति चरित्र स्ट्रिंग चरित्र पढ़ना:

  • हर बार जब आप लोअरकेस में एक पत्र का सामना करते हैं, तो उसे अगले अक्षर से जोड़कर 'A' से शुरू करें
  • हर बार जब आप अपरकेस में एक पत्र का सामना करते हैं, तो इसे उस लोअरकेस में पत्र से बदलें, जिसके साथ यह जुड़ा हुआ है
  • अन्य पात्रों को किसी विशेष प्रसंस्करण की आवश्यकता नहीं होती है और बस अपरिवर्तित रह जाते हैं

उदाहरण

इनपुट स्ट्रिंग के लिए "endlAsEBAEE":

  • एसोसिएट eकरने के लिए A, nकरने के लिए B, dकरने के लिए Cऔर lकरने के लिएD
  • बदलें Aके साथe
  • से संबद्ध sहैंE
  • बदलें EBAEEके साथsness

अंतिम आउटपुट है "endlessness"

स्पष्टीकरण और नियम

  • इनपुट स्ट्रिंग में प्रत्येक लोअरकेस अक्षर को एक बार में रखने की गारंटी है। आगे के सभी उदाहरणों को संबंधित कैपिटल लेटर से बदल दिया जाएगा।
  • इनपुट स्ट्रिंग मान्य होने की गारंटी है। (आप एक बड़े अक्षर का सामना नहीं करेंगे जो अभी तक लोअरकेस अक्षर से जुड़ा नहीं है।)
  • एक बार जब एक बड़े अक्षर को लोअरकेस अक्षर से जोड़ा जाता है, तो इसे बाद में स्ट्रिंग में इस्तेमाल किया जा सकता है या नहीं भी। उदाहरण के लिए, Cऔर Dउपरोक्त उदाहरण में उपयोग नहीं किया जाता है।
  • यह , इसलिए बाइट्स में सबसे कम जवाब जीतता है!

परीक्षण के मामलों

इनपुट:

abcd
honk! ABCD!
abrAcAdABCA
endlAsEBAEE
helCo wDrCd!
dermatoglyphics
progBamFinD AuzJles & cCdL DCKf
sphinx of black quKrtz, jOdge my vGw. K NODLM IPGZE HGF SOWBA GYVP QCV JKRX TGU.
petBr AiABD AEckBd a ABFG of AEFGlBH ABAABDs. hJw mIny AEFGLBH ABAABDM HEH ABCBD AEABD AEFG?

उत्तर:

abcd
honk! honk!
abracadabra
endlessness
hello world!
dermatoglyphics
programming puzzles & code golf
sphinx of black quartz, judge my vow. a quick brown fox jumps over the lazy dog.
peter piper picked a peck of pickled peppers. how many pickled peppers did peter piper pick?

1
मुझे लगता है कि इस कार्य का उलटा - लोअरकेस + विराम चिह्न की एक स्ट्रिंग एन्कोडिंग - एक दिलचस्प चुनौती भी बना देगा।
चास ब्राउन

जवाबों:


8

जेली , 8 7 बाइट्स

fØaØA,y

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

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

fØaØA,y  Main link. Argument: s (string)

 Øa      Yield the lowercase alphabet.
f        Filter; keep only characters that appear in the lowercase alphabet.
          Call the result r.
   ØA    Yield the uppercase alphabet (u).
     ,   Pair; yield [u, r].
      y  Translate s, using the substitutions in [u, r].


3

जावास्क्रिप्ट (ईएस 6), 62 बाइट्स

s=>s.replace(/[A-Z]/g,c=>s.match(/[a-z]/g)[parseInt(c,36)-10])

प्रत्येक कैपिटल लेटर को उसके बेस 36 मान, 10 से कम में बदल दिया जाता है।

फिर हम उस इंडेक्स के निचले अक्षर पर मेल खाते हैं।


2

पायथ, 36 बाइट्स

JKr1GVQI&}NG!}NH=XHNhK=tK)p?}NJ@_HNN

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

व्याख्या

JKr1GVQI&}NG!}NH=XHNhK=tK)p?}NJ@_HNN
JKr1G                                  Let J and K be the uppercase alphabet.
     VQ                                For each character in the input...
       I&}NG!}NH         )             ... if the character is lowercase and not
                                       yet in H, ...
                =XHNhK                 ... add the letter and the next uppercase
                                       letter to H...
                      =tK              ... and move to the next uppercase letter.
                          p?}NJ@_HNN   Print either the next character or the
                                       letter it represents.


2

आर , 79 बाइट्स

function(x){s=utf8ToInt(x)
s[j]=s[s>96&s<123][s[j<-s>64&s<91]-64]
intToUtf8(s)}

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


बहुत अच्छा ! आप शायद scan(,"" एक फ़ंक्शन के बजाय इसे पूरा कार्यक्रम बनाने के लिए उपयोग करके कुछ बाइट्स बचा सकते हैं , इसके अलावा मैं किसी भी सुधार को खोजने के लिए संघर्ष कर रहा हूं ...
JayCe

2

-p27 बाइट्स के साथ पर्ल 5

eval"y/A-Z/".y/a-z//cdr."/"

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

-2 बाइट्स @breadbox को धन्यवाद !


1
के s///grसाथ की जगह बाइट्स के एक जोड़े को बचाओ y///cdr
ब्रेडबॉक्स

@breadbox बेशक, धन्यवाद!
डोम हेस्टिंग्स

2

Z80Golf , 37 बाइट्स

00000000: 2505 cd03 8030 0176 fe7b 300c fe61 3011  %....0.v.{0..a0.
00000010: fe5b 3004 fe41 3003 ff18 e7d6 414f 0a18  .[0..A0.....AO..
00000020: f777 2318 f3                             .w#..

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

z80 इस पर बहुत अच्छा करता है! यहाँ एक disassembly है:

  dec h         ; HL = cipher write pointer
  dec b         ; BC = cipher read pointer
                ; meaning of 'A'..'Z' is written to $ff00~$ff19
next:
  call $8003    ; getchar
  jr nc, ok     ; not EOF?
  halt
ok:
  cp '{'
  jr nc, other  ; a ≥ '{'
  cp 'a'
  jr nc, lower  ; 'a' ≤ a ≤ 'z'
  cp '['
  jr nc, other  ; '[' ≤ a ≤ '`'
  cp 'A'
  jr nc, upper  ; 'A' ≤ a ≤ 'Z'
other:
  rst $38
  jr next
upper:
  sub 'A'
  ld c, a
  ld a, (bc)
  jr other
lower:
  ld (hl), a
  inc hl
  jr other

हम एचएल और बीसी दोनों को $ff00सीमा के साथ इंगित करते हैं dec, और rst $38एक छोटे विकल्प के रूप में उपयोग करते हैं call $8000, लेकिन अन्यथा बहुत चालबाजी नहीं चल रही है।


1

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

~["T`L`"|""L$`[a-z]
$&-$&

इसे ऑनलाइन आज़माएं! स्पष्टीकरण:

[a-z]

लोअरकेस अक्षरों को मिलाएं।

$`
$&-$&

प्रत्येक अक्षर को स्वयं की एक पतित श्रेणी से बदलें। (यह बाद के लिप्यंतरण को एक चरित्र वर्ग के रूप में मानने से रोकता है; बैकस्लैश का उपयोग नहीं किया जा सकता क्योंकि बैकस्लैश के बाद कुछ निचले मामलों के अक्षरों का एक विशेष अर्थ होता है।)

["T`L`"|""L

पतित श्रेणियों की सूची बनाएं, लेकिन बिना लाइन विभाजक के, और पूर्ववर्ती के साथ T`L`

~

मूल इनपुट पर परिणामी लिप्यंतरण कार्यक्रम का मूल्यांकन करें।






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