বিনিময় মূলধন


35

দুটি অক্ষরের অক্ষর দেওয়া, প্রতিটি স্ট্রিংয়ের মূলধন প্যাটার্নটিকে অন্য একটিতে স্থানান্তর করুন। সবচেয়ে কম বাইট জেতা

Input:   CodeGolf xxPPCGxx  
Output:  coDEGOlf XxppCgxx
  • উভয় স্ট্রিং সমান দৈর্ঘ্য এবং মজাদার হবে, কেবলমাত্র অক্ষর সহ a..zএবং A..Z
  • আপনি ইনপুটগুলির সাথে সম্পর্কিত দুটি ক্রমের ফলাফলকে দুটি আউটপুট দিতে পারেন।
  • আপনি ইনপুট এবং / অথবা আউটপুট জন্য নন-অক্ষর একক-অক্ষর বিভাজক সহ একটি স্ট্রিং হিসাবে স্ট্রিংগুলির একটি জুড়ি উপস্থাপন করতে পারেন।
  • আপনি অক্ষর বা এক-বর্ণের স্ট্রিংগুলির তালিকা হিসাবে একটি স্ট্রিংকে উপস্থাপন করতে পারেন, তবে কোড পয়েন্টের মানগুলির ক্রম হিসাবে নয় যদি না এটি আপনার ভাষায় কেবল স্ট্রিং না থাকে।
  • আপনার ইনপুট এবং আউটপুট স্ট্রিংগুলি আলাদাভাবে উপস্থাপন করতে পারে।

পরীক্ষার কেস:

CodeGolf xxPPCGxx -> coDEGOlf XxppCgxx
lower UPPER -> LOWER upper
MiXeD lower -> mixed LoWeR
A A -> A A
ABcd EfGh -> AbCd EFgh

উত্তর:


14

জাভা (জেডিকে 10) , 66 বাইট

a->b->{for(int i=a.length,t;i-->0;b[i]^=t)a[i]^=t=(a[i]^b[i])&32;}

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

ব্যাখ্যা

a->b->{                           // Curried lambda
 for(int i=a.length,t;i-->0;      //  Descending loop on i,
                                  //  Declare t
     b[i]^=t                      //   Apply the case difference to b[i]
   )
  a[i]^=t=(a[i]^b[i])&32;         //   Assign the case difference of the two letters to t, and apply it to a[i].
}

9
আপনার এই উত্তরের সাথে সম্পূর্ণ সম্পর্কযুক্ত নয়, তবে এটি চ্যাট তৈরির চেয়ে সহজ। ; p আপনি কী জাভা -10 টিআইও-র ব্যবহারের সময় একটি বাগ রয়েছে তা লক্ষ্য করেছেন array[i++%n]+=...;? array[t=i++%n]=array[t]+...;ঠিকভাবে কাজ করে; এবং array[i%n]+=...;i++;পাশাপাশি সূক্ষ্মভাবে কাজ করে তবে একটি মডিউল ব্যবহার করে i++বা একটি অ্যারেতে একটি সারিতে সংযোজন কাজ করে না .. সমস্যাটি দেখার জন্য এখানে একটি জাভা 10 টিআইওর উদাহরণস্বরূপ। এটি কি জাভা 10 জেডিকে বা জাভা 10 টিআইও সংকলকটিতে বাগ (বা বৈশিষ্ট্য: এস)? ++i+=
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুজসেন আমি বিষয়টি দেখছি, তবে এটি অদ্ভুত বলে মনে হচ্ছে। আমি দেখতে পাচ্ছি যে টিআইওতে ব্যবহৃত সংস্করণটি 10.0.0_46 (20-03-2018 এর)। সর্বশেষ সংস্করণটি 10.0.1। আমাদের সম্ভবত টিআইওর কাছে তাদের জাভা সংস্করণটি আপডেট করতে বলা উচিত।
অলিভিয়ার গ্রাগোয়ার

3
@ কেভিন ক্রুজসেন ডেনিস সংস্করণটি 10.0.1 এ আপডেট করেছেন এবং সমস্যাটি এখনও চলছে (আমার কাছে জাভা 10 ইনস্টল নেই তবে আমি আপনার মত টিআইও-র উপর নির্ভর করি)। আমি স্ট্যাক ওভারফ্লোতে জিজ্ঞাসা করেছি যেহেতু আমি জানি না যে এখানে কী ঘটে ... অবাক হয়ে যায়!
অলিভিয়ার গ্রাগোয়ার

5
@ কেভিন ক্রুইজসেন ঠিক আছে, এই উত্তরটি অনেকগুলি আকর্ষণকে আকর্ষণ করে না: পি ওয়ে যাই হোক ... জিনিসটি আসলে আপনি একটি বাগ খুঁজে পেয়েছেন । যেহেতু অনুমানটি বলে যে এটি যেমনটি আপনার মনে হয় ঠিক তেমন অভিনয় করা উচিত, আপনার উত্তরটি সেভাবেই লিখতে থাকুন, জাভা 10 এর জন্য আপনার যদি প্রয়োজন হয় তবে এটি অপ্টিমাইজড। এইভাবে, আপনার কাছে একটি বৈধ জাভা 10 উত্তর রয়েছে, তবে সেই বাগের কারণে অস্ট্রেশনযোগ্য। কেবল এটি লিখুন এবং এটি জাভা 8 এ পরীক্ষা করুন, তারপরে যথাযথ জাভা 10 পরিবর্তন করার মতো Stringকরুন var
অলিভিয়ার গ্রাগোয়ার

6
আমি মনে করি এটি সত্যিই ঝরঝরে যে আপনি জেডিকে ১০-তে একটি বাগ পেয়েছেন। ভাল কাজ:]
পোকে

13

সি (জিসিসি) , 86 58 55 53 বাইট

c(a,s,e)char*a,*s;{for(;*s++^=e=(*s^*a)&32;)*a++^=e;}

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


বিট ম্যানিপুলেশন দেয়f(S,Z)char*S,*Z;{for(int d;d=(*Z^*S)&32,*Z++^=d;)*S++^=d;}
Kritixi Lithos

নিবন্ধন করুন অনেক ধন্যবাদ.
জোনাথন ফ্রেচ


@ অলিভিয়ারগ্রোওয়ের ধন্যবাদ
জোনাথন ফ্রেচ

8

জেলি , 9 বাইট

O&32^/^OỌ

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

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

O&32^/^OỌ  Main link. Argument: [s, t] (pair of strings)

O          Ordinal; replace each character with its code point.
 &32       Perform bitwise AND with 32, yielding 32 for lowercase letters, 0 for
           uppercase ones.
    ^/     Reduce by XOR, yielding 32 for letter pairs with different 
           capitalizations, 0 for letter pair with matching capitalizations.
      ^O   XOR the result with each of the code points.
        Ọ  Unordinal; replace each code point with its character.

1
... আমরা জানতাম যে এটি ঘটবে: ডি
জোনাথন অ্যালান

7

এপিএল (ডায়ালগ ক্লাসিক) , 13 12 বাইট

⊖⊖819⌶¨⍨∊∘⎕a

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

ইনপুট এবং আউটপুট একটি 2 × N অক্ষর ম্যাট্রিক্স

⎕a বড় হাতের ইংরেজি বর্ণমালা 'ABC...Z'

∊∘⎕a ইনপুটগুলির মধ্যে কোন বর্ণগুলি বড়হীন তা নির্দেশ করে একটি বুলিয়ান ম্যাট্রিক্স প্রদান করে

819⌶ বুলিয়ান বাম আর্গুমেন্টের উপর নির্ভর করে তার ডান যুক্তিকে বড় হাতের বা ছোট হাতের কাছে রূপান্তর করে ("819" "বিগ" এর জন্য লেটস্পিক)

819⌶¨⍨প্রতিটি ( ¨) অক্ষরের জন্য এটি করে, ( ) আর্গুমেন্ট অদলবদল করে

উল্লম্ব উল্লম্ব অর্থ; একটিতে বাম যুক্তি হিসাবে কাজ করে 819⌶এবং অন্যটি চূড়ান্ত ক্রিয়া


1
"819" is leetspeak for "BIG"... সিরিয়াসলি? এটি 819 কেন এটির আসল ব্যাখ্যা? 0_o
DLosc

@DLosc হ্যাঁ :) চ্যাট দেখুন
ngn

5

পাইথ , 10 বাইট

rVV_mmrIk1

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

ব্যাখ্যা এবং পরিষ্কার পাইথ ট্রিক্স ব্যবহৃত হয়েছে

  • rVV_mmrIk1- সম্পূর্ণ প্রোগ্রাম। ইনপুট দুটি স্ট্রিংয়ের তালিকা হিসাবে STDIN থেকে নেওয়া হয়, এবং আউটপুট দুটি অক্ষরের তালিকার তালিকা হিসাবে STDOUT এ লেখা হয়।

  • mm - প্রতিটি স্ট্রিংয়ের প্রতিটি চরিত্রের জন্য:

    • Ik - এটি নিরপেক্ষ কিনা তা পরীক্ষা করুন ...
    • r...1- ... বড়হাতে রূপান্তর করা হচ্ছে। বড় হাতের অক্ষরের জন্য ফলন সত্য এবং ছোট হাতের অক্ষরের জন্য মিথ্যা
  • _ - সেই তালিকাটি উল্টো করুন।

  • VV - এবং দুটি তালিকার উপরের নিম্নলিখিত ফাংশনটিকে ডাবল ভেক্টরাইজ করুন:

    • r- মানটি True(ওরফে 1) হলে বড় হাতের কাছে রূপান্তর করুন, অন্যথায় লোয়ারকেসে রূপান্তর করুন।

এই জমাটি নির্যাতনের যে r0এবং r1ছোট হাতের অক্ষর ব্যবহার এবং Pyth য়ের বড়হাতের ফাংশন আছে, এবং আমরা সত্য মান (মান পরীক্ষণ যদি প্রতিটি অক্ষর বড় হাতের দ্বারা প্রাপ্ত বিপরীত) ব্যবহার ফলনশীল Trueবড়হাতের এবং Falseছোট হাতের অক্ষর ব্যবহার জন্য। এই উত্তরটি যে পদ্ধতির মাধ্যমে ব্যবহার করা হচ্ছে তার পক্ষে বুলিয়ানরা পাইথনের পূর্ণসংখ্যাগুলির সাবক্লাস। পোর্টিং ডেনিস এবং জোনাথনের জেলি উভয়ের কাছেই 18 বাইটের বেশি ফলাফল হয়েছিল, তাই আমি এখানে ব্যবহৃত পাইথ-নির্দিষ্ট কৌশলগুলি নিয়ে বেশ খুশি।


4

এমএটিএল , 11 বাইট

kG91<P32*-c

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা

k      % Implicit input: 2-row char matrix. Convert to lower-case
G      % Push input again 
91<    % Less than 91?, element-wise. Gives 1 for upper-case
P      % Flip vertically
32*    % Multiply by 32, element-wise
-      % Subtract, element-wise
c      % Convert to char. Implicit display


3

জে , 36 31 27 বাইট

-9 বাইট ধন্যবাদ ফ্রাউনফ্রোগের জন্য!

(XOR"$32*[:~:/97>])&.(3&u:)

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

পূর্ববর্তী সমাধানটি ছিল:

জে , 36 31 বাইট

-5 বাইট ধন্যবাদ ফ্রাউনফ্রোগের জন্য!

|:@(XOR 32*0~:/@|:97>])&.(3&u:)

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

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

                          (3&u:)  converts the strings to code points
   (                    )&.       then do the following and convert back to chars
                    97>]          check if they are uppercase letters 
             0~:/@|:              transpose and check if the two values are different
          32*                     multiply by 32 (32 if different, 0 otherwise)
      XOR                         xor the code point values with 32 or 0
 |:@                              and transpose

[:0 হতে পারে এবং (22 b.)হতে পারে XOR&.(3&u:)1 বাইট সাশ্রয় করে।
ফ্রাউনফ্রগ

@ ফরোনাফ্রোগ খুব সুন্দর গল্ফ, আপনাকে ধন্যবাদ! আপনি সত্যিই ভালো!
গ্যালেন ইভানভ


নিবন্ধন করুন আপনি ব্যবহার ব্যাখ্যা করতে পারবেন "এবং $? ধন্যবাদ!
গ্যালেন ইভানভ

ইনপুটটি দিয়ে সম্পন্ন করা হয় ,:, বাম পাশে 2 টি সারি রয়েছে। আমাদের প্রয়োজন "(1)তবে "$খুব বেশি কাজ করে, কারণ এটি দাঁড়িয়েছে "1 _$ b.0$ (monadic, dyadic বাম, dyadic ডান) এর র‌্যাঙ্ক দেয়।
ফ্রাউনফ্রগ

3

আর , 118 94 75 72 বাইট

m=sapply(scan(,""),utf8ToInt);w=m>96;apply(m-32*(w-w[,2:1]),2,intToUtf8)

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

অনেক গল্ফিয়ার উপায় থাকতে হবে। -৩৪ বাইট জিউসেপিকে ধন্যবাদ, যিনি আমাকে লুইস মেন্ডো দ্বারা এমএটিএল সমাধানের দিকে নির্দেশ করেছিলেন। টিআইও লিঙ্কে একই বাইট গণনার জন্য একটি ফাংশন সমাধান রয়েছে।

m=sapply(a<-scan(,""),utf8ToInt)    # Turns input into a matrix of bytecode (2 columns)
w=m>96                              # Predicate : which chars are lower?
apply(m-32*(w-w[,2:1]),2,intToUtf8) # -32*w turns the string to UPPER
                                    # +32*w[,2:1] swaps capitalization
                                    # intToUtf8 turns bytecode to strings

বোনাস: আউটপুট একটি নামযুক্ত ভেক্টর যার নামগুলি মূল ইনপুট স্ট্রিং!


আপনি অন্য কোথাও a<-ব্যবহার না করার কারণে আপনি ড্রপ করতে সক্ষম হবেন a
জিউসেপে

@ জিউসপ্পে আপনি কি আমার মন পড়ছেন? ;)
জয়সি

3

x86-64 মেশিন কোড, 14 বাইট

এই প্রোটোটাইপের সাহায্যে সি (x86-64 SysV কলিং কনভেনশন) থেকে কলযোগ্য:

void casexchg(char *rdi, char *rsi);  // modify both strings in place

দৈর্ঘ্য সহ একটি স্পষ্ট দৈর্ঘ্যের সংস্করণ rcxএকই আকার। void casexchg(char *rdi, char *rsi, int dummy, size_t len);


এটি সি এবং জাভা উত্তরের মতো একই বিট-এক্সচেঞ্জ আলগো ব্যবহার করে: উভয় অক্ষর যদি একই রকম হয় তবে দুটিও পরিবর্তন করার প্রয়োজন নেই। যদি তারা বিপরীত ক্ষেত্রে থাকে তবে তাদের উভয়েরই পরিবর্তন হওয়া দরকার।

দুটি স্ট্রিংয়ের কেস বিটকে আলাদা করতে এক্সওআর ব্যবহার করুন। mask = (a XOR b) AND 0x20পৃথক হওয়ার জন্য 0 সমান বা 0x20। a ^= mask; b ^= maskকেসফ্লিপ উভয় অক্ষর যদি তারা বিপরীত ক্ষেত্রে ছিল। (কারণ উচ্চ এবং নিম্নের জন্য ASCII লেটার কোডগুলি কেবল বিট 5 এর মধ্যে পৃথক রয়েছে))

এনএএসএম তালিকা (থেকে nasm -felf64 -l/dev/stdout)। cut -b 26- <casexchg.lst >casexchg.lstআপনি একত্র করতে পারেন এমন কিছুতে এটিকে ফিরিয়ে আনতে ব্যবহার করুন ।

   addr    machine
 6         code          global casexchg
 7         bytes         casexchg:
 8                       .loop:
 9 00000000 AC               lodsb                ; al=[rsi] ; rsi++
10 00000001 3207             xor   al, [rdi]
11 00000003 2420             and   al, 0x20       ; 0 if their cases were the same: no flipping needed
12                       
13 00000005 3007             xor   [rdi], al      ; caseflip both iff their cases were opposite
14 00000007 3046FF           xor   [rsi-1], al
15                       
16 0000000A AE               scasb                ; cmp al,[rdi] / inc rdi
17                           ; AL=0 or 0x20.
18                           ; At the terminating 0 in both strings, AL will be 0 so JNE will fall through.
19                           ; 0x20 is ASCII space, which isn't allowed, so AL=0x20 won't cause early exit
20 0000000B 75F3             jne  .loop
21                       ;    loop  .loop            ; caller passes explict length in RCX
22                       
23 0000000D C3               ret

  size = 0xe bytes = 14
24 0000000E 0E           db $ - casexchg_bitdiff

ধীর loopনির্দেশ এছাড়াও 2 বাইট, অল্প হিসাবে একই jcc। ওয়ান-বাইট নির্দেশ সহ scasbবর্ধনের সর্বোত্তম উপায় way rdiআমি অনুমান করি আমরা xor al, [rdi]/ করতে পারি stosb। এটি একই আকারের তবে কেসটির জন্য সম্ভবত দ্রুত loop(মেমরি এসসিআর + স্টোর মেমরি ডিএসটি + পুনরায় লোডের চেয়ে সস্তা)। এবং এখনও অন্তর্নির্মিত দৈর্ঘ্যের ক্ষেত্রে জেডএফ উপযুক্তভাবে সেট করতে হবে!

এটি অনলাইন চেষ্টা করুন! একটি _ স্টার্ট সহ যা এটিকে আরজিভি [1], আর্গভ [2] এ কল করে এবং ফলাফলটিতে s__writte ব্যবহার করে



2

পাইথন 3 , 83 বাইট

lambda a,b:(g(a,b),g(b,a))
g=lambda*a:[chr(ord(x)&95|(y>'Z')<<5)for x,y in zip(*a)]

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

মিঃ এক্সকোডার
-3 বাইট ধন্যবাদ চ্যাস ব্রাউনকে ধন্যবাদ


বিট-টুইডলিংয়ের সাথে 83 বাইট
চ্যাস ব্রাউন

পছন্দ করুন ধন্যবাদ!
হাইপারনিউটারিনো


2

কিউব্যাসিক, 133 বাইট

INPUT a$,b$
FOR i=1TO LEN(a$)
c=ASC(MID$(a$,i,1))
d=ASC(MID$(b$,i,1))
s=32AND(c XOR d)
?CHR$(c XOR s);
r$=r$+CHR$(d XOR s)
NEXT
?
?r$

দুটি স্ট্রিং কমা-বিচ্ছিন্ন করে এবং ফলাফলগুলিকে নিউলাইন-পৃথক করে আউটপুট দেয়। ডেনিসের জেলি উত্তর থেকে বিট-ফিডিং অ্যালগরিদম ব্যবহার করে । তা ছাড়া, এখানে মূল গল্ফ ট্রিকটি হ'ল প্রথম ফলাফলের স্ট্রিংটি সরাসরি মুদ্রিত হয়, একবারে একটি অক্ষর, যা উভয় ফলাফলের স্ট্রিংগুলিকে ভেরিয়েবলগুলিতে সংরক্ষণ এবং লুপের বাইরে মুদ্রণের চেয়ে কিছুটা ছোট।


2

জাভাস্ক্রিপ্ট, 77 74 73 বাইট

W=>W.map((w,x)=>w.map((c,i)=>W[+!x][i][`to${c>{}?'Low':'Upp'}erCase`]()))

চরের অ্যারেগুলির একটি অ্যারে নেয়, চরের অ্যারেগুলির একটি অ্যারে আউটপুট করে।

-1 বাইট ( @ আরনল্ড ): c>'Z'c>{}


1
আপনি এটি দিয়ে একটি বাইট সংরক্ষণ করতে পারেন c>{}
আর্নল্ড

1

রেটিনা , 75 বাইট

^
¶
+`¶(([A-Z])|(.))(.*)¶(([A-Z])|(.))
$#6*$u$1$#7*$l$1¶$4$#2*$u$5$#3*$l$5¶

এটি অনলাইন চেষ্টা করুন! ব্যাখ্যা: কতগুলি স্ট্রিং প্রক্রিয়াজাত করা হয়েছে তা নির্ধারণ করতে নিউলাইনগুলি চিহ্নিতকারী হিসাবে ব্যবহৃত হয়। রেজেক্স বড় হাতের অক্ষরের সাথে কোনও অক্ষরের সাথে ব্যর্থ হওয়ার চেষ্টা করে। যদি বড় হাতের অক্ষরটি মিলে যায় তবে অন্য চরিত্রটি বড়হাঁস হয় অন্যথায় এটি ছোট হাতের এবং তদ্বিপরীত হয়, যখন নতুনলাইনগুলি পরবর্তী অক্ষরে উন্নত হয়।


1

পাইথন 3 , 76 75 বাইট

lambda a,b:''.join(chr(ord(x)&95|ord(y)&32)for x,y in zip(a+' '+b,b+'a'+a))

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

একক-অক্ষর বিভাজক সহ একটি স্ট্রিং হিসাবে ফলাফল আউটপুট করে।

থেক্স থেকে জোনাথন অ্যালানকে 1 বাইটে।



1

সমাবেশ (নাসম, এক্স 64, লিনাক্স) , 25 বাইট (123 বাইট উত্স)

হেক্স বাইটস:

0x88, 0xE6, 0x30, 0xC6, 0x80, 0xE6, 0x20, 0x88
0xF2, 0x66, 0x31, 0xD0, 0x88, 0x26, 0xAA, 0xAC
0x8A, 0x26, 0x8A, 0x07, 0x08, 0xE4, 0x75, 0xE8, 0xC3

ফাংশন এন্ট্রি পয়েন্ট এ aসঙ্গে স্ট্রিং ব্যবহার করে পাস, RDIএবং RSI

b:MOV DH,AH
XOR DH,AL
AND DH,32
MOV DL,DH
XOR AX,DX
MOV [RSI],AH
STOSB
LODSB
a:MOV AH,[RSI]
MOV AL,[RDI]
OR AH,AH
JNZ b
RET

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


আমি ঠিক বুঝতে পেরেছি আপনি মেশিন কোডের আকার নয়, asm উত্সটি গল্ফ করছেন। এটি সাধারণত আরও মজাদার, কারণ এটি সত্য জীবনে মাঝে মাঝে উপকারী। (সমস্ত কিছু সমান, ছোট হওয়া সাধারণত ফ্রন্ট-এন্ড এবং ইউওপ ক্যাশে ঘনত্বের জন্য ভাল )) x86 / x64 মেশিন কোডে গল্ফ করার টিপস
পিটার কর্ডস

@ পিটারকর্ডস টিপটির জন্য ধন্যবাদ। আমি হেক্স বাইট যুক্ত করেছি। আমার সমাবেশটি কিছুটা মরিচা (আমাকে শেষ পর্যন্ত ডস ৩.৩ এর জন্য একটি ছোট ডিভাইস ড্রাইভার লিখতে হয়েছিল!) তবে আমার মনে হয় আমি বেশিরভাগ অপ্টিমাইজেশান পেয়েছি।
এরিকএফ

হ্যাঁ, এটি দেখতে বেশ ভাল লাগছে। আকর্ষণীয় আংশিক-নিবন্ধ হ্যাক। and al,32বেশিরভাগ ALU নির্দেশাবলীতে বিশেষ AL, im8 এনকোডিং ব্যবহার করে কেবল 2 বাইট। আপনার আরসিএক্স এবং স্ট্রিংয়ের দৈর্ঘ্যের প্রয়োজন হতে পারে loop। আমি বলতে আপনি উচিত যাচ্ছিলেন test ah,ahকারণ যে আরো কার্যকর চেয়েor যখন একই দৈর্ঘ্য হচ্ছে, কিন্তু এটা এ এস এম উৎস আর তাই কর্কশ পুরাতন বাগ্ধারা আসলে এ এস এম সোর্স কোড golfing জন্য মেধার আছে: পি
পিটার Cordes

স্মৃতি-গন্তব্য জোর এবং একটি শক্ত লুপ কাঠামো ব্যবহার করে আমার সংস্করণটি x86-64 মেশিন কোডের 14 বাইটে এসেছিল । অন্তর্নিহিত দৈর্ঘ্য বা সুস্পষ্ট দৈর্ঘ্যের স্ট্রিং গণনার জন্য একই। এর এনএএসএম উত্সটি সম্ভবত 123 বাইটের চেয়েও কম গল্ফ করা যেতে পারে। আমি নিশ্চিত নই যে স্কাইলেক বা রাইজেনের মতো আধুনিক সিপিইউতে কোনটি দ্রুত চলবে (ডিএক্স পড়ার সময় রাইজেনের ডিএইচ মার্জ করার জন্য কোনও অতিরিক্ত ব্যয় হবে না, তবে এসকেএলকে মার্জিং ইউওপি toোকাতে অতিরিক্ত চক্রের প্রয়োজন হবে।)
পিটার


0

কাঠকয়লা , 17 বাইট

Eθ⭆ι⎇№α§§θ¬κμ↥λ↧λ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। দুটি স্ট্রিংয়ের অ্যারে হিসাবে ইনপুট নেয়। ব্যাখ্যা:

 θ                  Input array
E                   Map over strings
   ι                Current string
  ⭆                 Map over characters
         θ          Input array
           κ        Outer loop index
          ¬         Logical Not
        §           Index into array
            μ       Inner loop index
       §            Index into array
      α             Uppercase characters
     №              Count number of matches
              λ λ   Current character
             ↥      Uppercase
               ↧    Lowercase
    ⎇               Ternary
                    Implicitly print

0

এফ #, 120 বাইট

দাত্ত।

open System
let g=Seq.fold2(fun a x y->a+string(x|>if y>'Z'then Char.ToLower else Char.ToUpper))""
let b f s=g f s,g s f

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

ফাংশনটি gপ্যারামিটার হিসাবে দুটি স্ট্রিং নেয়। স্ট্রিংগুলিতে প্রতিটি উপাদান ( এবং ) এর Seq.fold2সাথে একটি সংযোজক ( a) সহ একটি ফাংশন প্রয়োগ করে। প্রাথমিকভাবে একটি খালি স্ট্রিং, এবং এটি প্রতিটি পুনরাবৃত্তিতে এটি রূপান্তরিত অক্ষর যুক্ত করে।xya

bপ্রধান কাজ। এটি প্রথমে fসম্মানের সাথে রূপান্তরিত হয় sএবং তারপরে sসম্মানের সাথে রূপান্তরিত হয় f। এরপরে এটি উভয় মান সহ একটি টিপল দেয়।



0

রুবি , 74 69 বাইট

->a,b{a.zip(b).map{|x|x.one?{|y|y>?_}?x.map(&:swapcase):x}.transpose}

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

ইনপুট এবং আউটপুট হল অক্ষরের অ্যারে, তাই পাদচরণটি স্ট্রিংগুলি থেকে পিছনে পিছনে রূপান্তরগুলি করে।

সমস্যাটি সম্পর্কে এটি একটি ভাল পদ্ধতির কিনা তা আমি এখনও নিশ্চিত নই, তবে এই চ্যালেঞ্জটি অবশ্যই swapcaseপদ্ধতির জন্য একটি দুর্দান্ত ব্যবহারের দৃশ্যের মতো দেখাচ্ছে ।


0

পিএইচপি 4.1.2 , 40 বাইট

বাইট গণনাটি দেখানোর জন্য বাইট এ 0 (আইএসও -8859-1 বা উইন্ডোজ-1252-এ, এটি এনবিএসপি) এর সাথে উদ্ধৃতি চিহ্নগুলির জোড়টি প্রতিস্থাপন করুন, তারপরে স্ট্রিং সরবরাহ করে একটি ওয়েব ব্রাউজার (অথবা কমান্ড লাইন থেকে) থেকে চালান ক্যোরি স্ট্রিং আর্গুমেন্ট (বা পরিবেশের ভেরিয়েবল) aএবং b

<?=$a^$c=($a^$b)&str_pad("",2e5),_,$b^$c;

পিএইচপি-র এই সংস্করণে, রেজিস্টার_গ্লোবালগুলি ডিফল্টরূপে চালু থাকে, সুতরাং স্ট্রিংগুলি স্বয়ংক্রিয়ভাবে ভেরিয়েবলগুলিকে বরাদ্দ করা হবে $aএবং $b2e5প্রয়োজনে মান (200000) বাড়ান ।

পিএইচপি 7.1+, 58 বাইট

কমান্ড লাইনে চালনা করুন php -r 'code here' string1 string2:

[,$a,$b]=$argv;echo("$b $a"^$a.=" $b")&str_pad("",3e5)^$a;

3e5কোনও সম্ভাব্য ইনপুট স্ট্রিংয়ের সমস্যা এড়াতে বেশিরভাগ লিনাক্স সিস্টেমে (বিশেষত x86 এবং অন্যান্য আর্কিটেকচারের জন্য PAGE_SIZE 4096 এবং MAX_ARG_STRLEN এইভাবে 131072) মান (300000) অতিক্রম করতে বেছে নেওয়া হয়েছে। প্রয়োজনে বাড়ান।

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


0

স্ট্যাক্স , 10 বাইট

▌Ö↑o╓→ì]yç

এটি চালান এবং এটি ডিবাগ করুন

এটি কীভাবে কাজ করে তা দেখানোর জন্য এখানে একই প্রোগ্রামটির একটি নিরবচ্ছিন্ন উপস্থাপনা।

        Example
        ["Ab", "cd"]                    
:)      [["Ab", "cd"], ["cd", "Ab"]]    Get all rotations of input
m       ["cd", "Ab"]                    For each, run the rest of program; print result
  M     ["cA", "db"]                    Transpose matrix
  {     "cA"                            Begin block for mapping to result
    B   "A" 99                          "Pop" first element from string array; leave the rest
    96> "A" 1                           Is the character code > 96?
    :c  "a"                             Set case of string; 0 -> upper,  1 -> lower
  m     "ab"                            Perform the map using the block

এটি চালান


0

স্ফটিক , 108 বাইট

def f(a,b)r=s=""
a.zip(b){|x,y|r+="`"<x<"{"?y.downcase: y.upcase
s+="`"<y<"{"?x.downcase: x.upcase}
{s,r}end

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

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

def f(a, b)                       # Strings as list of characters
r = s = ""                        # Strings buffers initialization
a.zip(b) do |x, y|                # Join two arrays to paired tuples and iterate
r+="`"<x<"{"?y.downcase: y.upcase # Check if character is downcase using triple
s+="`"<y<"{"?x.downcase: x.upcase # comparison and ascii table. Then apply it to
end                               # the other character using String methods
{s, r}                            # Return two new strings using a tuple
end                               # PS: Tuples are inmutable structures in Crystal
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.