বর্ণমালা অদলবদল করুন


48

এই চ্যালেঞ্জের ক্ষেত্রে আপনি বর্ণমালাকে "বিপরীত" করবেন বা এর সাথে অদলবদল a-zকরতে পারবেন z-a। এটি সাধারণত আটবাশ সাইফার হিসাবে পরিচিত ।

কারণ এই রূপান্তরটি আউটপুটটিকে কিছু বিদেশী ভাষার মতো দেখাচ্ছে, আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া দরকার।


উদাহরণ

abcdefghijklmnopqrstuvwxyz
zyxwvutsrqponmlkjihgfedcba

Programming Puzzles & Code Golf
Kiltiznnrmt Kfaaovh & Xlwv Tlou

Hello, World!
Svool, Dliow!

সবিস্তার বিবরণী

  • ইনপুটটিতে একাধিক লাইন থাকতে পারে এবং এটি কেবলমাত্র ASCII হবে
  • আউটপুটে কোনও অতিরিক্ত শ্বেত স্থান যুক্ত করা উচিত নয়
  • কেস সংরক্ষণ করতে হবে

লিডারবোর্ড


এটি তাই বাইট জিতে সংক্ষিপ্ততম কোড


24
ন্যায্যতার জন্য +1 "যেহেতু এই রূপান্তরটি আউটপুটটিকে কিছু বিদেশী ভাষার মতো দেখায় তাই আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া দরকার" "
বিড়াল

11
কিছু ট্রিভিয়া: এটি আটবাশ , বাইবেলের মতো পুরানো জ্ঞাত সাইফার।
জ্যাকব

6
"যেহেতু এই রূপান্তরটি আউটপুটটিকে কিছু বিদেশী ভাষার মতো দেখাচ্ছে, আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া দরকার" " এটা কি ধরণের যুক্তি ?? কারণ আপনার বিবরণটি যতটা প্রশ্ন চিহ্ন উত্থাপন করে তা যেন এটি কোনও বিদেশী ভাষায় লেখা হয়েছিল তবে আপনার এই প্রশ্নের উত্তরটি বোধগম্য প্রাকৃতিক ভাষায় হওয়া উচিত এবং কিছু ভার্বোসটি প্রশংসিত হয়।
বার্ট

Kiltiznnrmt Kfaaovh & Xlwv Tlou "প্রোগ্রামিং ট্রিভিলস এবং কোড বোলিং" এর নতুন সাইট হওয়া উচিত ...
এরিক দ্য আউটগল্ফার

আপনি অতিরিক্ত সাদা স্থানকে কেন অনুমতি দিচ্ছেন না? এটি এমন কিছু ভাষায় অসম্ভব করে তোলে যে সবসময় একটি নতুন লাইনে থাকে। আমি এটিকে চ্যালেঞ্জের সাথে কিছু যুক্ত করতে দেখছি না।
ফলটি Esolanging

উত্তর:


11

পাইথ, 8 বাইট

XXzG)rG1

@ এক্সনর @ ফ্রাইআম দ্য এজম্যানের পাইথ উত্তরটিতে এই সহজ পদ্ধতির পরামর্শ দিয়েছিলেন, তারপরে আমি এটি পাইথের কাছে অনুবাদ করেছি।

এটি X(অনুবাদ) এর সহজ আচরণ ব্যবহার করে যখন কেবল দুটি আর্গুমেন্ট দেওয়া হয়: এটি দ্বিতীয় যুক্তি থেকে বিপরীত দ্বিতীয় যুক্তিতে অনুবাদ করে। আমরা এটি প্রথমে ছোট হাতের বর্ণমালা ( G) এর সাথে করি এবং তারপরে বড় হাতের না দিয়ে G


16

সি, 59 বাইট

আবার সি আনার জন্য দুঃখিত, তবে আমি এখানে কেবল সি ফাংশন দেখে কিছুটা হতাশ হয়েছি । আমি ছাপের মধ্যে ছিলাম ওপি একটি ব্যবহারযোগ্য পণ্য খুঁজছিল।

main(c){while(~(c=getchar()))putchar(isalpha(c)?c+4^31:c);}

একটি সাধারণ সহ উবুন্টু 14.04 এ সংকলিত:

cc swalpha.c

ফলস্বরূপ এক্সিকিউটেবল স্ট্ডিন থেকে যে কোনও লাইন পড়ে এবং স্টাডআউটে ফলাফল লিখে।

এক্সওআর ট্রিকের জন্য অন্যান্য অনেকগুলি পোস্টারকে ধন্যবাদ।


11

সিজেম, 17 বাইট

আমি গ্যামারকম্পসকে তার সিজেএম সমাধানটি গল্ফকে সহায়তা করতে চেয়েছিলাম, তবে ফলাফলটি এতটাই আলাদা হয়েছিল যে আমি পৃথক উত্তর দেওয়ার সিদ্ধান্ত নিয়েছি।

q'[,_el^_W%32f^er

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

ব্যাখ্যা

q     e# Read all input.
'[,   e# Get a character range from the null byte up to and including "Z".
_el   e# Duplicate and convert to lowercase.
^     e# Symmetric set difference. Due to the lowercase operation only letters will not
      e# appear in both sets, and so we get a string with all uppercase letters followed
      e# by all lowercase letters, i.e "ABC...XYZabc...xyz".
_W%   e# Duplicate and reverse. Gives: "zyx...cbaZYX...CBA".
32f^  e# Take each character XOR 32 which swaps the case, so now we have:
      e#                               "ZYX...CBAzyx...cba"
er    e# Transliterate: substitute each character in the first string with the correspoding
      e# character in the second string.

4
ঠিক আছে, আপনি খুশি হলেন আপনি সাহায্য করার চেষ্টা করছেন! এটিই আমি সমাধানটি তৈরি করার চেষ্টা করছিলাম, আমি কেবল এক্সওআর বের করতে পারিনি। সুন্দর কাজ!
গ্যামার কর্পস

1
এসই এর বাক্য গঠন হ'ল ইওল্যাংগুলিকে ঘৃণা করে।
সাইয়েস

@ কায়স তাদের সম্ভবত সময় নেই; এই সাইটে কতগুলি ভাষা রয়েছে তা প্রদত্ত। এটি বলেছিল, সিজেএম সম্ভবত একটি সহজ উপায়, এটি স্ব-সংশোধনকারী নয় এবং এটির একটি সুস্পষ্ট কাঠামো রয়েছে। আমি দেখতে চাই যে তারা /// এর মতো একটি স্ব-পরিবর্তনকারী ভাষায় সিনট্যাক্স-হাইলাইটিং যুক্ত করার চেষ্টা করতে চাই।
ফলটি Esolanging

@ চ্যালেঞ্জার ৫ আফাইক, সিনট্যাক্স হাইলাইট করে কেবল গুগলের প্রশংসনীয় ব্যবহার করে, বিভিন্ন এসওল্যাংগুলিকে সমর্থন যোগ করতে হবে সেখানে।
মার্টিন এন্ডার

11

জাভাস্ক্রিপ্ট (ES6), 69 67 বাইট

x=>x.replace(/[A-Z]/gi,c=>String.fromCharCode(c.charCodeAt()+4^31))

আমার জাপা উত্তরের মতো একই কৌশল ব্যবহার করে :

x=>x.replace(/[A-Z]/gi,C=>   // Replace each letter C with
 String.fromCharCode(        //  the character with char code
  C.charCodeAt()+4^31))      //   the char code of C, plus 4, with the last 5 bits flipped.

আপনার অবিশ্বাস্যভাবে দীর্ঘ সম্পত্তির নাম, জেএসকে অভিশাপ দিন ...


1
জেএসের উদ্দীপক দীর্ঘ সম্পত্তির নাম উল্লেখ করার জন্য +1 আমার প্রিয় এখনও কুখ্যাতdocument.getElementById
সাইয়েস

2
@ কিয়েস চেষ্টা করুন document.getElementsByClassNameবা ফায়ারফক্স এবং ক্রোমে,document.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
ইসমাইল মিগুয়েল

এটি 67 কে নয় কেবল 66 বাইট বলে মনে হচ্ছে
ডাউনগোট

@ দো - আপনি এ সম্পর্কে ঠিক বলেছেন, ধন্যবাদ!
ETH প্রোডাকশনগুলি

দেখে মনে হচ্ছে আপনি গল্ফ কোডের শেষে একটি বন্ধনী বন্ধনী মিস করছেন।
স্টারবিয়াম্রেনবোলাবস 7:56

10

রেটিনা , 17 14 13 বাইট

কোড:

\T`w`_dZ-Az-a

ব্যাখ্যা:

\             # This suppresses the trailing linefeed
 T            # Switches to transliterate mode
  `w          # w is short for _0-9A-Za-z
    `_d       # d is short for 0-9
       Z-Az-a # Z-Az-a

এটি কিছু যাদু স্টাফ করে এবং কাজটি সম্পূর্ণ করে।

এখানে চেষ্টা করুন


2
ভাগ্যবান আপনি যা আমি সম্প্রতি যুক্ত করেছি \। দুর্ভাগ্য যে আপনি আমি অক্ষর এবং বিপরীত চরিত্রের ক্লাসগুলির জন্য চরিত্রের ক্লাসগুলি যোগ করতে প্রায় পাইনি।
মার্টিন এন্ডার

@ মার্টিনব্যাটনার সত্যিই খুব ভাগ্যবান, যা আমার উত্তরটিকে প্রায় বাতিল করে দিয়েছে :)
আদনান

রেফারেন্সের জন্য, রেটিনা 0.7.2 হিসাবে আপনি করতে পারেন \T`lL`RlRL
মার্টিন এন্ডার

9

পাইথ, 10 9

uXGr;H)2z

নতুন বৈশিষ্ট্য সহ একটি বাইট সংরক্ষণ করার জন্য জাকুবকে ধন্যবাদ ;!

পরীক্ষা স্যুট

একটি দ্রুত ব্যাখ্যা: কমাতে সংখ্যার 0 এবং 1 এর অপারেশন সঞ্চালিত হবে উপর ইনপুট দিয়ে শুরু সঙ্গে ছোট হাতের বর্ণমালা অনুবাদ হয় r...0বা r...1যা আপার এবং লোয়ার ফাংশন পাইথন থেকে যথাক্রমে, এটা প্রয়োগ করা, এবং তারপর বিপরীত হয়।


1
নতুন বৈশিষ্ট্যের কারণে 9 বাইট (এক দিনের uXGr;H)2z
পুরানোও নয়

5
আপনি একটি ব্যাখ্যা যোগ করতে পারেন?
তানমাথ

1
আপনি Xবর্ণমালা এবং তারপরে মূলধন বর্ণমালা দিয়ে ব্যবহার করতে পারবেন না ?
xnor

1
@ এক্সনোর XXzG)rG1? কাজ করে মনে হচ্ছে।
লিরটোসিয়াস্ত

বা, সম্ভবত ছোট হাতের অক্ষর এবং বড় হাতের অক্ষরে X টি করা যায়, তারপরে অদলবদল হবে? আসলে সম্ভবত এটি দীর্ঘ।
xnor

6

জুলিয়া, 74 61 47 বাইট

s->replace(s,r"[a-z]"i,t->Char(31$Int(t[1])-4))

এটি একটি ল্যাম্বদা ফাংশন যা একটি স্ট্রিং গ্রহণ করে এবং একটি স্ট্রিং প্রদান করে। এটি কল করতে, এটি একটি ভেরিয়েবলের জন্য বরাদ্দ করুন।

আমরা একটি নিয়মিত অভিব্যক্তি ব্যবহার করে প্রতিটি অক্ষর মেলে এবং প্রতিটি অক্ষর ASCII অক্ষরের সাথে 31 এক্সওর এর সাথে ASCII কোড, বিয়োগ 4 এর সাথে প্রতিস্থাপন করি।


বাহ, এটি খুব মার্জিত। আমি এর জন্য অবহেলার সতর্কতা পেয়েছি $যাতে আপনি এটি আপডেট করতে চাইতে পারেন । আপনি কোনও ফাংশনটি ব্যবহার করতে পারবেন তা জানেন না replace
নিকজকি 12

5

সি, 150 129 বাইট

void rev(char*s){int i,t;for(i=0;i<strlen(s);i++){t=s[i]+25;t=t<116?180-t:244-t;isalpha(s[i])?printf("%c",t):printf("%c",s[i]);}}

এই ফাংশনটি কেবল চরকে ইন্টারে রূপান্তর করে এবং প্রিন্টিংয়ের আগে যথাযথ অফসেট যুক্ত করে। আমি জানি এটি সবচেয়ে কম নয় তবে আমি কোনও সি বাস্তবায়ন দেখিনি।

ব্যবহারের উদাহরণ

#include<stdio.h>
#include<string.h>
#include<ctype.h>

void rev(char*s){int i,temp;for(i=0;i<strlen(s);i++){temp=s[i]+25;temp=temp<116?180-temp:244-temp;isalpha(s[i])?printf("%c",temp):printf("%c",s[i]);}}


int main(){
   char *s = "hello, there";
   rev(s);
   return 0;
}

আপডেট: একটি পরিবর্তনশীল নাম সংক্ষিপ্ত করে।


প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্ট্যাক এক্সচেঞ্জে আপনাকে স্বাগতম! এটি একটি খুব ভাল পদ্ধতির। একে একে পুরো tempচরিত্রটি দীর্ঘ সহ সমস্ত ভেরিয়েবল (সহ ) তৈরি করে আরও গল্ফ করা যেতে পারে ।
wizzwizz4

আহ্ আপনি ঠিক বলেছেন! আমি এটিকে পুনরায় প্রকাশ করব
ডানওয়াকিম

1
আপনি কি মনে করেন আমার চ্যালেঞ্জটি নিয়ে আপনি যেতে পারেন? আপনার চেয়ারটি বিশ্লেষণ করুন
wizzwizz4

1
হ্যাঁ এটি শিরোনাম ছাড়া কাজ করবে আপনি কেবল একটি সংকলক সতর্কতা পাবেন @ এডসি 65 আমি এটি তৈরি করেছি যেহেতু এটি সংকলন করে চালানো হয় এটি প্রতারণা বলে বিবেচিত হবে না তবে বাস্তব বিশ্বের ব্যবহারে আপনাকে সর্বদা শিরোনাম অন্তর্ভুক্ত করা উচিত।
ডানওয়াকিম

1
107 বাইট:i,t;r(char*s){for(;i<strlen(s);i++){t=s[i]+25;t=t<116?180-t:244-t;isalpha(s[i])?putchar(t):putchar(s[i]);}}
স্পিক্যাট্রিক্স

5

জাপট, 23 22 বাইট

Ur"[A-Za-z]"_c +4^31 d

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

কিভাবে এটা কাজ করে

Ur"[A-Za-z]"_  // Take the input and replace each letter with:
 c +4          //  Take its char code and add 4. This results in
               //  the string      "ABC...XYZabc...xyz"
               //  becoming        "EFG...\]^efg...|}~".
 ^31           //  XOR the result by 31. This flips its last five 5 bits.
               //  We now have     "ZYX...CBAzyx...cba".
 d             //  Convert back from a char code.
               // Implicit: output last expression

এর জন্য এক্সওআর ব্যবহার করার জন্য দুর্দান্ত ধারণা (যা আমি ধার নিয়েছি ...)
লুইস মেন্ডো

5

সি, 64

একটি শূন্য ফাংশন যা জায়গায় স্ট্রিংটি পরিবর্তন করে।

t(char*p){for(int c;c=*p;)*p++=c>64&c<91|c>96&c<123?(c^31)-4:c;}

পরীক্ষা: আদর্শ


1
c;t(char*p){for(;c=*p;)*p++=c>64&c<91|c>96&c<123?(c^31)-4:c;}
স্পিক্যাট্রিক্স

কুলগুই ঠিক আছে, তবে আমি কোনও ফাংশনের অভ্যন্তরে গ্লোবাল পছন্দ করি না ... এটি কেবল আমার
edc65

এই 64 বাইট না?
ডাউনওয়েট

@ দো হ্যাঁ এটি .. ধন্যবাদ ..
edc65

5

আর, 69 61 বাইট

কিছু অতিরিক্ত বাইট কামিয়ে দেওয়ার জন্য @ জিউজ্পে ধন্যবাদ :

function(s)cat(chartr("a-zA-Z",intToUtf8(c(122:97,90:65)),s))

পূর্ববর্তী সংস্করণ:

function(s)cat(chartr("a-zA-Z",rawToChar(as.raw(c(122:97,90:65))),s))

এটি একটি বেনামে ফাংশন। ব্যবহার:

> f=function(s)cat(chartr("a-zA-Z",rawToChar(as.raw(c(122:97,90:65))),s))
> f("Hello, World!")
Svool, Dliow!
> f("Programming Puzzles & Code Golf")
Kiltiznnrmt Kfaaovh & Xlwv Tlou
> f("This is
+ a multiline
+ example.")
Gsrh rh
z nfogrormv
vcznkov.

1
intToUtf8(c(122:97,90:65))পরিবর্তনের পরিবর্তে raw, এবং আপনি catপাশাপাশি মুক্তি পেতে পারেন । গল্ফটি আপনার 1+ বছরের পুরানো উত্তরগুলি আসার অভ্যাসটি আমি কিছুটা করছি ...
জিউসেপ্পে

4

গুরুত্ব সহকারে, 31 বাইট (প্রতিদ্বন্দ্বী)

úúû+╗úRúûR+╝,`;╜íuWD╛E(X0WX`Mεj

হেক্স ডাম্প:

a3a3962bbba352a396522bbc2c603bbda1755744be452858305758604dee6a

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

Expl:

úúû+╗                             Put UPPERCASElowercase in reg0
     úRúûR+╝                      Put ESACREPPUesacrewol in reg1
            ,                     Fetch input.
             `             `Mεj   Map over the characters in string as list, joining result
              ;╜íu                Find 1-index of character in UPPERCASElowercase
                  W     0WX       If it is positive (present): 
                   D              Convert back to 0-index
                    ╛E            Look it up in ESACREPPUesacrewol
                      (X          Delete the original character.
                                  (Else just leave the original character unchanged.)

আমি অনুধাবন করেছিলাম মাত্র কোনও অতিরিক্ত শ্বেত স্পেস বলছে না, তবে সিরিয়াসলি আউটপুটে নতুন লাইনগুলি দমন করার কোনও উপায় নেই, সুতরাং সিরিয়াসলি কোনও সমাধান নেই।


1
কী ESACREPPUesacrewolমানে?
ডাউনগোট

3
@ ডো ᴡɴɢᴏᴀᴛ আপ্পের্যাসে উল্টে লোয়ারক্যাসি উল্টে গেছে
মামা ফান রোল

2
বিপরীত বড় হাতের বর্ণমালা বিপরীত ছোট হাতের বর্ণমালায়
সংযোজন

4

রুবি, 40 বাইট

নতুন সমাধান: অন্যান্য কিছু পোস্টের থেকে বিটটি ফ্লিপিং ম্যাজিকটি চুরি করেছে:

->s{s.gsub(/[a-z]/i){($&.ord+4^31).chr}}

রুবি, 55 46 বাইট

->s{s.tr'a-zA-Z',[*?A..?Z,*?a..?z].reverse*''}

9 বাইটস অফ অফ মান্যাটওয়ার্ককে ধন্যবাদ


পরীক্ষা রান:

->s{s.gsub(/[a-z]/i){($&.ord+4^31).chr}}["Kiltiznnrmt Kfaaovh & Xlwv Tlou"]
=> "Programming Puzzles & Code Golf"

3

জल्फ, 15 বাইট

~Ai+plpu+_pl_pu
~A              I don't know what to call this, besides "dictionary replace"
  i              the input
   +plpu         previous dictionary: lower + upper alphabet
        +_p1_pu  new dictionary: reversed lower + reversed upper

পরীক্ষার স্যুট , বা আপনার নিজের ইনপুট দিয়ে এটি ব্যবহার করে দেখুন


এর জন্য শব্দটি হ'ল লিপ্যন্তর, "এফওয়াইআই।
একটি স্প্যাগেটো

3

𝔼𝕊𝕄𝕚𝕟 2, 12 টি অক্ষর / 26 বাইট (অপ্রতিযোগিতামূলক)

ïĪ(ᶐ+ᶛ,ᶐᴙ+ᶛᴙ

Try it here (Firefox only).

চ্যালেঞ্জ পোস্ট হওয়ার পরে লিখিত লিখিত লিপি লিখিতকরণ ফাংশন।

ব্যাখ্যা

ïĪ(ᶐ+ᶛ,ᶐᴙ+ᶛᴙ // implicit: ï=input
ïĪ(           // transliterate ï...
   ᶐ+ᶛ,       // from uppercase+lowercase alphabet...
       ᶐᴙ+ᶛᴙ  // ... to reversed uppercase+reversed lowercase alphabet
              // implicit output

আমি ভেবেছিলাম 𝔼𝕊𝕄𝕚𝕟 2 কে 𝔼𝕊 called বলা হবে?
ডাউনগোট

1
না, আমি decided এর পরিপূরক (তবে ভিন্ন) ভাষার জন্য সেভ করার সিদ্ধান্ত নিয়েছি 𝔼𝕊𝕄𝕚𝕟
মামা ফান রোল

IIRC নেই একটি বিদ্যালয়ে লিপির জন্য তক্তা সাহসী 2.
কোনোর ব্রায়েন

@ It এটিকে ESMax (ডাবলস্ট্রাকের মধ্যে) কল করুন।
mbomb007

3

সিজেম, 21 বাইট

q'[,65>__el_@+W%@@+er

কোনও অনুকূল সমাধান নয় ... এখনও ... এটি চেষ্টা করে দেখুন

বিষয়গুলিকে গোষ্ঠীভূত না করে ব্যাখ্যা করা শক্ত, সুতরাং এখানে একটি সাধারণ ব্যাখ্যা: ইনপুট পাওয়া যায়, দুইবার বড় হাতের বর্ণমালা চাপ দেয় এবং দু'বার ছোট হাতের অক্ষর ঘুরিয়ে দেয়, চারপাশে জিনিসগুলি আবর্তিত করে, বড় হাতের অক্ষর এবং ছোট ছোট স্ট্রিংগুলিকে একত্রিত করে, একটিকে বিপরীত করে এবং প্রতিলিপি ব্যবহার করে (রেটিনা উত্তরের অনুরূপ)।


এই আউটপুটটি কি একটি পিছনের নতুন লাইন?
LegionMammal978

@ LegionMammal978 স্ট্যাকটি কীভাবে আউটপুট করা হয় তা পরিবর্তন না করা উচিত নয়
গ্যামার কর্পস

পছন্দ করুন
মার্টিন এন্ডার

3

সি (ফাংশন), 50

f(char*s){for(;*s;s++)*s=isalpha(*s)?*s+4^31:*s;}

এই উপর তৈরী করে সব তিনটি পূর্ববর্তী সি উত্তর, তাই ক্রেডিট @Ruud, @Danwakeem এবং @ edc65 করতে।

এই ফাংশনটি জায়গায় একটি চর অ্যারে পরিবর্তন করে।

আমার বোধগম্য হ'ল ফাংশন এন্ট্রি অনুমোদিত না থাকলে প্রশ্নটিতে স্পষ্টভাবে নিষিদ্ধ করা হয়।

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


3

PostgreSQL, 118 125 বাইট

SELECT s,TRANSLATE(s,t||UPPER(t),REVERSE(t)||REVERSE(UPPER(t)))
FROM(SELECT text'Programming Puzzles & Code Golf's,text'abcdefghijklmnopqrstuvwxyz't)r

SqlFiddleDemo

আউটপুট:

╔══════════════════════════════════╦═════════════════════════════════╗
║                s                 ║            translate            ║
╠══════════════════════════════════╬═════════════════════════════════╣
║ Programming Puzzles & Code Golf  ║ Kiltiznnrmt Kfaaovh & Xlwv Tlou ║
╚══════════════════════════════════╩═════════════════════════════════╝

ইনপুট: SELECT text'...'s


সম্পাদনা করুন:

টেবিল হিসাবে ইনপুট:

SELECT s,TRANSLATE(s,t||UPPER(t),REVERSE(t)||REVERSE(UPPER(t)))
FROM i,(SELECT text'abcdefghijklmnopqrstuvwxyz't)r
GROUP BY s,t

SqlFiddleDemo

আউটপুট:

╔══════════════════════════════════╦═════════════════════════════════╗
║                s                 ║            translate            ║
╠══════════════════════════════════╬═════════════════════════════════╣
║ Hello, World!                    ║ Svool, Dliow!                   ║
║ Programming Puzzles & Code Golf  ║ Kiltiznnrmt Kfaaovh & Xlwv Tlou ║
║ abcdefghijklmnopqrstuvwxyz       ║ zyxwvutsrqponmlkjihgfedcba      ║
╚══════════════════════════════════╩═════════════════════════════════╝

ওহে 202025, আমি মনে করি এটি 118 এর চেয়ে কম, তবে আমি গণনার নিয়মে কোনও বিশেষজ্ঞ নই
t-clausen.dk

2

পাইথন 3, 195 169 168 166 বাইট

-২ বাইটের জন্য @ ট্র্যাঙ্গউলকে ধন্যবাদ !

আমি কীভাবে দেখতে পেলাম না যে আমি আগে এটি গল্ফ করতে পারি?

x=__import__('string').ascii_letters;y,z=x[26:],x[:26];a,b=y[::-1],z[::-1];print(''.join(b[z.index(i)]if i in b else a[y.index(i)]if i in a else i for i in input()))

(বাছাই করা) অবরুদ্ধ:

x = __import__('string').ascii_letters;
y, z = x[26: ], x[: 26];
a, b = y[::-1], z[::-1];
print(''.join(b[z.index(i)]
    if i in b
    else a[y.index(i)]
    if i in a
    else i
    for i in input()
))

আইডিয়নে চেষ্টা করে দেখুন!


1
আপনি দূরতম সরিয়ে 2 বাইট সংরক্ষণ করতে পারবেন []থেকে join
ট্রাং ওউল

@ ট্র্যাংউল আসলেই? এটি একটি তালিকা বোঝার জন্য তাই আমি ভেবেছিলাম এটির একটি তালিকা হওয়া দরকার অন্যথায় আপনি পান generator object <genexpr> at...তবে আমি এটি পরীক্ষা করব
বিড়াল

@ ট্র্যাংআউল কিছুই নয়, আমি কিছু শিখেছি, ধন্যবাদ!
বিড়াল 13

যে কোনও পুনঃবারণযোগ্য [ strমান রয়েছে] join()ফাংশনে পাস হতে পারে।
ট্রাং ওউল

2

পাইথন, 61 বাইট

lambda x:''.join([c,chr(ord(c)+4^31)][c.isalpha()]for c in x)

একটি বেনামী ফাংশন। চিঠিগুলিতে, 4 টি যোগ করে বিট উপস্থাপনার ক্ষেত্রে বিপরীত ক্রিয়াকলাপটি কি ETH প্রডাকশনগুলির জাভাস্ক্রিপ্ট উত্তরের অনুরূপ শেষ পাঁচটি বিটকে উল্টিয়ে দেয় ?


ঠিক ঠিক একই জিনিস লিখেছেন হা হা
স্যাজিক্সপ

2

হাস্কেল, 119 104 বাইট

15 বাইট সংরক্ষিত হয়েছে @ নিমিকে ধন্যবাদ।

c=fromEnum;s=toEnum;f[]="";f(x:y)|64<c x&&c x<91=s(155-c x):f y|96<c x&&c x<123=s(219-c x):f y|0<1=x:f y

ব্যবহার:

f "abcdefghijklmnopqrstuvwxyz"
"zyxwvutsrqponmlkjihgfedcba"

f "Programming Puzzles & Code Golf"
"Kiltiznnrmt Kfaaovh & Xlwv Tlou"

f "Hello, World!"
"Svool, Dliow!"

ব্যাখ্যা

let c=fromEnum;s=toEnum;--wrap names for later use, fromEnum gets ascii code from char, toEnum gets char from ascii code
f[]=[];                 --feed empty list (of chars in this case), get empty list
f(x:y)                  --feed a list, separate the first element and...
|64<c x&&c x<91=        --if its an uppercase char (using ascii code range)...
s(c x*(-1)+155)         --  inverse its ascii code value, move it to the range of uppercase and get the new char
                        --  (like rotating half turn a ruler by the side and then sliding it to the space it previously occupied)
:f y                    --  feed the rest of the list and stick the new char in front of the result
|96<c x&&c x<123=       --if its a lowercase char (using ascii code range)...
s(c x*(-1)+219)         --  inverse its ascii code value, move it to the range of lowercase and get the new char
:f y                    --  feed the rest of the list and stick the new char in front of the result
|True=x:f y             --otherwise feed the rest of the list and stick the char in front of the result

আমি হাস্কেলের কাছে ... ফাংশনাল প্রোগ্রামিং ... এবং সাইটে নতুন এবং আমি জানি যে এই প্রশ্নের আরও অনেক ভাল উত্তর রয়েছে (তবে) আমার সাথে সহ্য করুন।


কিছু গল্ফিং টিপস: ক) ব্যবহার করার দরকার নেই let। সঙ্গে সরাসরি শুরু করুন c=fromEnum। ব্যবহার করুন (155-c x)এবং (219-c x)। গ) Trueদ্বারা প্রতিস্থাপন করা যেতে পারে 1<2। - কোডগুলি ফাংশনগুলির জন্য "অ্যাম্বিজিয়াস টাইপ ভেরিয়েবল" ত্রুটি cএবং s(ghci 7.10.2) দিয়ে লোড করতে ব্যর্থ হয়েছে , তবে এটি f[]=""পরিবর্তে সহজেই ঠিক করা যেতে পারে f[]=[]
নিমিম

ধন্যবাদ !, আমি আসলে ভাবছিলাম যে এটি "লেট" ছাড়াই বৈধ কিনা, যেহেতু এটি সরাসরি জিএইচসিতে চালায় না।
ফ্লফি কান

2

পার্ল 6 , 28 বাইট

{S:g/\w/{chr $/.ord+4+^31}/}

ব্যবহার:

# give it a lexical name
my &swap = {  }

say swap 'Programming Puzzles & Code Golf';
# Kiltiznnrmt Kfaaovh & Xlwv Tlou

say swap ('a'..'z').join
# zyxwvutsrqponmlkjihgfedcba

যখন আমি এটি চালাই এটি বলছে: Warning: Use of "ord" without parentheses is ambiguous at (eval 8)[/System/Library/Perl/5.18/perl5db.pl:732] line 2.আমি পার্ল সম্পর্কে কিছুই জানি না তাই আমি কি কিছু ভুল করছি? আমি কীভাবে এটি চালাব?
ডাউনগোট

@ ডু- যদি আপনি লক্ষ্য করেন যে এটি পার্ল 6 তে লেখা আছে আপনি ফ্রেইনোডে # পার্ল 6 এ গিয়ে টাইপ করতে পারেনm: my &swap = {S:g/\w/{chr $/.ord+4+^31}/}; say swap ('a'..'z').join
ব্র্যাড গিলবার্ট বি

আহ ঠিক আছে, আপাতদৃষ্টিতে আমি পড়তে পারি না: পি
ডাউনগোট

@ দো - আমি একটি নোট যুক্ত করেছি যে আপনি এটি ফ্রেইনোডে # পার্ল 6 এ পরীক্ষা করতে পারবেন
ব্র্যাড গিলবার্ট বি

2

জাভা, 136 বাইট

void x(String i){for(char c:i.toCharArray()){if(Character.isLetter(c))c=c<91?(char)(90-(c-65)):(char)(122-(c-97));System.out.print(c);}}

ব্যবহারের উদাহরণ:

class Test {
  static void x(String i){for(char c:i.toCharArray()){if(Character.isLetter(c))c=c<91?(char)(90-(c-65)):(char)(122-(c-97));System.out.print(c);}}
  public static void main(String[] args) {
    x("Programming Puzzles & Code Golf");
    // produces "Kiltiznnrmt Kfaaovh & Xlwv Tlou"
  }
}

বাইট আকারের দিক থেকে সম্ভবত সবচেয়ে খারাপ ব্যবহৃত ভাষা।



আমি জানি এটি প্রায় 1.5 বছর পূর্বে পোস্ট করা হয়েছে, তবে আপনি বেশ কয়েকটি বিষয় void x(String i){for(Character c:i.toCharArray())System.out.print(c.isLetter(c)?(char)(c<91?90-(c-65):122-(c-97)):c);}
এইভাবে

বা আরও ছোট: void y(String i){for(int c:i.getBytes())System.out.print((char)(c>65&c<91|c>96&c<123?c<91?90-(c-65):122-(c-97):c));}( 116 বাইট )
কেভিন ক্রুইজসেন

1
@KevinCruijssen এছাড়াও আপনি করে প্রথম বন্ধনী প্রয়োজনীয়তার অস্বীকার করার গণনার নতুন করে সাজানো পারেন 90-(c-65)মধ্যে -c+65+90 এবং 122-(‌​c-97)মধ্যে -c+97+122যা বাইট প্রতিটি সংরক্ষণ করে,।
জাভাদা

2

ইউনিক্স শেল + টিআর + প্রিন্টফ, 35 বাইট

tr A-Za-z `printf %s {Z..A} {z..a}`

এখানে আপনি, ট্রামিতে একটি প্রচলিত উত্তর। আমি ভেবেছিলাম কিভাবে একটি ক্যানোনিকাল উত্তর ছাড়াই বর্ণমালা চলতে চলতে বর্ণমালায় প্রকাশ একটি প্রশ্ন পারে TR ansliterate বর্ণমালা?

নিজে নিজেই "হ্যালো, ওয়ার্ল্ড!" করে না এবং যেমন কোনও প্রোগ্রামিং ভাষা নয়, সুতরাং আমি উত্তরটি নন- কেপেটিং হিসাবে চিহ্নিত করেছি [1]

[1]: সম্পাদনা: প্রকৃতপক্ষে, ইউনিক্স শেলটি ভাষা এবং ত্র হ'ল স্ট্যান্ডার্ড লাইব্রেরি । আমাকে এটি সন্ধান করতে সাহায্য করার জন্য ডাউনগোট এবং ডিজিটাল ট্রমা ধন্যবাদ।


3
আমি মনে করি যে ভাষা হিসাবে শেল বা ব্যাশ দাবি করা ভাল, এবং সাধারণ ইউটিলিটিগুলি ( trকোর্টিলগুলিতে) স্ট্যান্ডার্ড লাইব্রেরি হিসাবে। আমার উত্তর অগণিত দেখুন ;-)
ডিজিটাল ট্রমা

1
কিন্তু এটা কাজ করে না: tr: range-endpoints of 'Z-A' are in reverse collating sequence order। আমি মনে করি আপনাকে কিছু করতে হবে tr A-Za-z $(printf %s {Z..A} {z..a})(এবং $( )ব্যাকটিকগুলি দিয়ে প্রতিস্থাপন করুন )
ডিজিটাল ট্রমা

@ ডিজিটালট্রামা তবে প্রত্যেকেরই সিস্টেমে প্রিন্টফ নেই।
user48538

7
আমি মনে করি আপনি এমন একটি ইউনিক্স সিস্টেম খুঁজে পেতে বেশ কঠিন সময় কাটাতে চাইবেনprintf - সর্বোপরি, এটি পিক্সিক দ্বারা নির্দিষ্ট করা আছে । এছাড়াও এটি বাশের একটি অন্তর্নির্মিত যা আজকাল বেশ সর্বব্যাপী। নির্বিশেষে, প্রত্যেকের সিস্টেমে প্রাক-ইনস্টল থাকা কোড-গল্ফের জন্য পূর্বশর্ত নয় - প্রত্যেকেরই সিস্টেমে সিজেম থাকে না ;-)
ডিজিটাল ট্রমা

1
এর মধ্যে }এবং স্থানটির {প্রয়োজন - অন্যথায় প্রসার কিছুটা হয়ে যায়Zz Zy Zx ... Za Yz ... Aa
ডিজিটাল ট্রমা


1

এমএটিএল , 21 28 বাইট

6.0.0 সংস্করণ ব্যবহার করে , যা এই চ্যালেঞ্জের চেয়ে আগের than কোডটি অ্যাকটাভে চলছে।

jttk2Y2mXK)o31Z~4-cK(

উদাহরণ

>> matl
 > jttk2Y2mXK)o31Z~4-cK(
 >
> Hello, World!
Svool, Dliow!

ব্যাখ্যা

j             % input string
t             % duplicate
tk            % duplicate and convert to lowercase
2Y2           % string 'abc...xyz'
m             % "ismember" function: produces logical index of letter positions
XK            % copy to clipboard K
)             % index into string to get its letters
o31Z~4-       % bitwise XOR with 31 and subtract 4
c             % convert to char
K             % paste logical index from clipboard K
(             % put back modified letters into original string

পুরানো পদ্ধতির, 28 বাইট

j1Y2!tkh"t@2#m@0v27b-)wXK)K(

1

ম্যাটল্যাব, 61 বাইট

@(x)[abs(-x+ismember(x,65:90)*155+ismember(x,97:122)*219),'']

আমি চেষ্টা করেছি f=@ismember, এবং পরিসীমাটিকে a=65:90একটি পরিবর্তনশীল করে তুলছি 32+aএবং দ্বিতীয় ismemberকলটিতেও করব। সকল এই কোড সংক্ষিপ্ত, কিন্তু একটি প্রোগ্রাম স্থাপিত হবে এবং এইভাবে প্রয়োজন উভয় dispএবং input

এটি দেয়:

ans('Hello, World!')
ans =
Svool, Dliow!

ans('Programming Puzzles & Code Golf')
ans =
Kiltiznnrmt Kfaaovh & Xlwv Tlou

1

ব্র্যাচল্যাগ , 66 বাইট

_|hH(:64>:91<,77-H+78=X;H:96>:123<,109-H+110=X;HX),[X]:"~c"w,?b:0&

বিল্ট-ইনগুলির অভাব সত্যিই এখানে ব্যথা করে, তাই আমাদের ভাল পুরানো ASCII কোড গণনা অবলম্বন করতে হবে।

প্রাকটিকটি brachylog_mainকোনও অক্ষর কোডের স্ট্রিংটিকে ইনপুট হিসাবে এবং কোনও আউটপুট হিসাবে প্রত্যাশা করে না egbrachylog_main(`Hello, World!`,_).

ব্যাখ্যা

_                                                                  § If the input is empty,
                                                                   § return true
                                                                   §
 |                                                                 § Else
                                                                   §
  hH(                                            ),[X]:"~c"w       § Print variable X which
                                                                   § depends on the head of
                                                                   § the input as a char code
                                                                   §
                                                            ,?b:0& § Recursive call on the
                                                                   § tail of the input
                                                                   §
     :64>:91<,77-H+78=X                                            § If H is capital, X =
                                                                   § 77 - H + 78
                       ;                                           § Else if H is non-cap, X=
                        H:96>:123<,109-H+110=X                     § 109 - H + 110
                                              ;                    § Else (not a letter)
                                               HX                  § H = X    

1

পার্ল 6, 40 39 বাইট

যেহেতু অন্য প্রত্যেকে বেনামে কাজ করছে:

my &f=*.trans(/\w/=>{chr $/.ord+4+^31})

(টিপটির জন্য ধন্যবাদ @ বি 2 গিলস)

অন্যান্য কিছু পোস্টের মতো একই বিট ফ্লিপিং ভুডো ব্যবহার করে। বাইট গণনায় ভেরিয়েবল / ফাংশন ঘোষণার অন্তর্ভুক্ত করা হবে কিনা তা সম্পর্কে আমি নিশ্চিত ছিলাম না, তাই আমি কেবল ক্ষেত্রেই এটি করেছি। এটি ছাড়া এই সমাধানটি কেবলমাত্র 34 বাইট।

ব্যবহার:

> f "zyxwvutsrqponmlkjihgfedcba"
abcdefghijklmnopqrstuvwxyz
> f "Kiltiznnrmt Kfaaovh & Xlwv Tlou"
Programming Puzzles & Code Golf
> f "Svool, Dliow!"
Hello, World!

আপনি *.trans(…)এটি খাটো করতে ব্যবহার করতে পারেন ।
ব্র্যাড গিলবার্ট বিবিগিল

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