একটি মূলধন সাইফার


15

আপনার কাজ হ'ল [32..126] এর পরিসরে মুদ্রণযোগ্য এএসসিআইআই অক্ষর সমন্বিত একটি খালি-খালি স্ট্রিংটি বোঝা

অক্ষর প্রতি স্ট্রিং অক্ষর পড়া:

  • প্রতিবার যখন আপনি ছোট হাতের অক্ষরে কোনও চিঠির মুখোমুখি হন, তখন এটি বড় হাতের অক্ষরে পরবর্তী অক্ষরের সাথে যুক্ত করুন, 'এ' দিয়ে শুরু করুন
  • প্রতিবার যখন আপনি বড় হাতের অক্ষরে কোনও চিঠির মুখোমুখি হন, তখন এটির সাথে যুক্ত ছোট হাতের অক্ষরের সাথে এটি প্রতিস্থাপন করুন
  • অন্যান্য অক্ষরগুলির জন্য কোনও বিশেষ প্রক্রিয়াকরণের প্রয়োজন হয় না এবং কেবল অপরিবর্তিত থাকে

উদাহরণ

ইনপুট স্ট্রিংয়ের জন্য "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
আমি মনে করি এই কাজের বিপরীতটি - ছোট হাতের + বিরামচিহ্নের একটি স্ট্রিং এনকোডিং করাও একটি আকর্ষণীয় চ্যালেঞ্জ তৈরি করবে।
চ্যাস ব্রাউন

উত্তর:




3

জাভাস্ক্রিপ্ট (ES6), 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(,"" কোনও ফাংশনের পরিবর্তে এটি একটি সম্পূর্ণ প্রোগ্রাম তৈরির মাধ্যমে কয়েকটি বাইট সংরক্ষণ করতে পারেন , তা ছাড়া আমি কোনও উন্নতি খোঁজার জন্য সংগ্রাম করছি ...
জয়সি

2

পার্ল 5 সঙ্গে -p, 27 বাইট

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

এটি অনলাইন চেষ্টা করুন!

-২ ব্রেড @ ব্র্যাডবক্সকে ধন্যবাদ !


1
এর s///grসাথে প্রতিস্থাপন করে কয়েকটি বাইট সংরক্ষণ করুন y///cdr
ব্রেডবক্স

অবশ্যই ব্র্যাডবক্স, আপনাকে ধন্যবাদ!
ডম হেস্টিংস

2

জেড 80 গল্ফ , 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 এটিতে বেশ ভাল করে! এখানে একটি অপ্রয়োজনীয়:

  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`

~

আসল ইনপুটটিতে ফলাফল লিখিত লিখনের প্রোগ্রামটি মূল্যায়ন করুন।






আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.