আমার ফ্যাট আঙ্গুলগুলি ঠিক করুন


21

কোড গল্ফ চ্যালেঞ্জ

আমার একটি আইএসডিউ রয়েছে, আমার ফিঙ্গারগুলি চর্বিযুক্ত এবং আমি আমার ক্রাইবোর্ডের ডানদিকে একটি কীস্ট্রিপকে আইআরআইএসএইচডিকে জেভ করে।

আমি ভয় করছি যে সময় বাড়ার সাথে সাথে ইসডিউ আরও খারাপ হয়ে যাচ্ছে।

প্রতি কি-স্ট্রিপকে আমি উইল করি; ডানদিকে shiftrd pne হতে!

বেফপ্রিফের পরে আমি প্রতিটি কীস্ট্রপেকে বামদিকে ফিরিয়ে আনতে একটি প্রোগ্রাম (বা ফানস্টিপএন) চাই।

আমি আমার টোম টাইপং টিজিস চালের বাকী অংশটি নিশ্চিত করে নেব; যাতে এঞ্জু বিভ্রান্তি না ঘটে!


উদ্দেশ্য:

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা একটি মানক QWERTY কীবোর্ডে নীচের সবুজ কীগুলির একটি ইনপুট নেয় এবং কীটির অক্ষরটিকে তার বামে ফিরিয়ে দেয়।এখানে চিত্র বর্ণনা লিখুন


শর্তাবলী:

• আপনি ধরে নিতে পারেন যে এই প্রোগ্রামটি চালাচ্ছেন ব্যক্তি উপরের চিত্রের মতো একটি QWERTY কীবোর্ড ব্যবহার করছেন।

• ইনপুট এবং আউটপুট উভয় ক্ষেত্রেই সংবেদনশীল, আপনি এই চ্যালেঞ্জের জন্য যে কোনও কেস (বা কেস সংমিশ্রণের মিশ্রণ) ব্যবহার করতে পারেন এবং আপনি চাইলে সমস্ত ইনপুটও এক ক্ষেত্রে হবে তা ধরে নিতে পারেন।

Your যদি আপনার ভাষার কোনও কারণে কোনও ব্যবহারকারীকে রিটার্ন কীটি ইনপুট করার অনুমতি না দেয় তবে আপনি এটির জন্য একটি কীস্ট্রোকটিকে উপেক্ষা করতে পারেন

• এই চ্যালেঞ্জটি কেবল কীগুলির ডিফল্ট মানগুলির জন্য, উদাহরণস্বরূপ যদি 4কীটি টিপানো হয় তবে আপনি ধরে নিতে পারেন এটি সর্বদা 4এবং কখনই থাকবে$

Ass আপনি ধরে নিতে পারেন যে কেবল সবুজ কীগুলি কখনও চাপবে।


উদাহরণ Input-> Output:

S-> a
4-> 3
=-> -
[->p


এটি , তাই সংক্ষিপ্ততম বাইটকাউন্টের সাথে প্রোগ্রামটি জয়ী!


আপনি টেস্টকেস সরবরাহ করতে পারেন?
কৃতিমিক লিথোস

1
নিবন্ধন করুন আমি এখনই tjat সম্পাদনা করব @
অ্যালবার্ট রেনশো

আপনি কি বলতে চান ]-> [?
shooqie


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

উত্তর:



5

পার্ল 6 , 87 83 69 বাইট

{[Q"`1234567890-=qwertyuiop[]\asdfghjkl;'
zxcvbnm,./".comb].&{%(.[1..*]Z=>$_)}{$_}}

{~Q"`1234567890-=qwertyuiop[]\asdfghjkl;'
zxcvbnm,./".match(/.)>$_/)}

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

ভাবছেন যে যদি হার্ড-কোডেড স্ট্রিংটিকে আরও ছোট কিছুতে এনকোড করার কোনও উপায় থাকে ...

( -১৪ বাইটের জন্য জিবি'র রেগেক্স ধারণাটি চুরি করেছে))


1
হতে পারে যদি আমাদের $"রেঞ্জগুলি কিছু অক্ষর বাঁচাতে পারে
ভেন

5

জেলি , 34 33 বাইট

ØD”`1¦ṭØqż“[]\“;'¶“,./“0-=”Fṡ2UZy

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

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

ØD”`1¦ṭØqż“[]\“;'¶“,./“0-=”Fṡ2UZy  Main link. Argument: s (string)

ØD                                 Digits; yield "0123456789".
  ”`1|                             Replace '0' with a backtick.
       Øq                          Qwerty; yield
                                   ["qwertyuiop", "asdfghjkl", "zxcvbnm"].
      ṭ                            Tack; add "`123456789" as the last element of
                                   the qwerty array.
          “[]\“;'¶“,./“0-=”        Yield ["[]\\", ";'\n", "0-="].
         ż                         Zip; combine the strings of the array to the
                                   left with the corresponding strings of the array
                                   to the right, yielding an array of string pairs.
                           F       Flatten, yielding a string.
                            ṡ2     Obtain all overlapping pairs of characters.
                              U    Upend; reverse each pair.
                               Z   Zip, yielding a pair of strings.
                                y  Translate the input s according to the generated
                                   replacement table.

3
আমি জেলিকে চিনি না, আপনি কি নিজের কোডটির ব্যাখ্যা যোগ করতে পারেন? পুরো কীবোর্ডের স্ট্রিং আক্ষরিক টাইপ না করে আপনি কীভাবে পালিয়ে গেলেন আমি জানতে আগ্রহী
অ্যালবার্ট রেনশো

1
আমার কাছে এখনও সময় ছিল না, তবে আমি তেমনি একটি ব্যাখ্যা যুক্ত করব।
ডেনিস

1
সম্পন্ন. আমিও কিছুটা গল্ফ করেছিলাম।
ডেনিস

1
Øqছিমছাম! আমি এই পছন্দ, ধন্যবাদ!
অ্যালবার্ট রেনশওয়া

4

পাইথন 3, 85 78 বাইট:

lambda x,k="`1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm<>?":k[k.‌​find(x)-1]

1
আপনি 1 টি ল্যাম্বদা ব্যবহার করে lambda x,k="1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm<>?":k[k.find(x)-1]
রড

ভালো কথা, আমি এটি যুক্ত করব।
L3viathan

আমি তোমাকে একটা ব্যাকটিক প্রয়োজন বাম 1. হতে মনে
xnor

@ এক্সনর রাইট, এটি স্থির করে দিয়েছে।
L3viathan

4

পাইথন , 76 বাইট

s="1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm<>?"
dict(zip(s,'`'+s)).get

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

এমন একটি অভিধান তৈরি করে যা তার পরিবর্তিত সংস্করণ দিয়ে অক্ষরের স্ট্রিংটি জিপ করে প্রতিটি কী তার বাম দিকে নিয়ে যায়। নীচের লাইনটি ফাংশন, শীর্ষটি একটি সংজ্ঞা।

translateম্যাপিং তৈরি করতে ব্যবহার করে একটি দীর্ঘতর সমাধান দেওয়া হয়েছে। এটি অনলাইন চেষ্টা করুন!

lambda s:s.translate("';"*22+"_0__9`12345678_LM-<>_\\VXSWDFGUHJKNBIO=EARYCQZT\nP][___"*4)

4

রেটিনা , 53 51 বাইট

T`1-90\-=QW\ERTYUI\OP[]\\ASDF-HJ-L;'¶ZXCVBNM,./`\`o

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

প্রতিটি অক্ষরকে 1 অবস্থান পিছনে সরিয়ে নিয়ে যাওয়া একটি সরল ট্রান্সলিটেশন। থেকে শুরু 1করে সমস্ত /কিছুই মূল চরিত্রের সেট, যখন oঅন্য সেটটি ইঙ্গিত করার জন্য নীচের অংশটি নতুন সেট।

Hএবং Lরেটিনাতে লিপ্য লিখনের জন্য বিশেষ অক্ষর শ্রেণি (যথাক্রমে হেক্স ডিজিট এবং বড় হাতের অক্ষরে ম্যাপিং), তবে ভাগ্যক্রমে তারা কীবোর্ডে বর্ণানুক্রমিকভাবে সাজানো সিকোয়েন্সগুলি ( FGHএবং JKL) এর মধ্যে উপস্থিত হয়, তাই আমরা তাদের রেঞ্জগুলিতে রেখে এড়ানো থেকে বাঁচতে পারি এবং এর মতো লাভ পেতে পারি 2 বাইট।



3

টিআই-বেসিক, 70 বাইট

আমি সন্দেহ করি যে এটি এর চেয়ে আরও ছোট হতে পারে ...

Input Str1
"`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./
sub(Ans,inString(Ans,Str1)-1,1

দ্রষ্টব্য দ্য দুই-বাইট টোকেন হয় Str1, `, \, sub(, এবং inString(


3

ভি , 57 54 51 বাইট

মাল্টিলাইন কীবোর্ডের hxVpপরিবর্তে আমার কাছে যা ছিল তার পরিবর্তে 3 বাইটগুলি @ nmjcman101 ধন্যবাদ সংরক্ষণ করেছে

i`¬190-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./<esc>/<C-r>a
hxVp

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

<esc>হয় 0x1bএবং <c-r>হয়0x12

দ্রষ্টব্য: এটি প্রবেশ কী সমর্থন করে না

অপ্রিন্টেবলগুলি ধারণ করে, তাই এখানে হেক্সডাম্প রয়েছে

00000000: 6960 ac31 3930 2d3d 7177 6572 7479 7569  i`.190-=qwertyui
00000010: 6f70 5b5d 5c61 7364 6667 686a 6b6c 3b27  op[]\asdfghjkl;'
00000020: 7a78 6376 626e 6d2c 2e2f 1b2f 1261 0a68  zxcvbnm,././.a.h
00000030: 7856 70                                  xVp

ব্যাখ্যা

প্রোগ্রামটির বেশিরভাগটি কীবোর্ড উত্পন্ন করে। iসন্নিবেশ মোডে প্রবেশ করে এবং এরপরে প্রতিটি অক্ষর বাফারে মুদ্রিত হয়। তবে এখানে একটি ছোট ছোট কীর্তি রয়েছে, ¬191 থেকে 9 এর মধ্যে অক্ষর সন্নিবেশ করায়।

প্রোগ্রামটি সন্নিবেশ মোড থেকে প্রস্থান করে <esc>। এবং তারপরে /<c-r>aএটি বাফারে যুক্তির সন্ধান করে। এটি খুঁজে পাওয়া চরিত্রের উপরে কার্সারটি নিয়ে আসে brings

h                  " move the cursor to the left
 x                 " delete this character
  Vp               " select this line and replace it with the deleted character

আমি 100% নই, তবে আমি মনে করি আপনি পরিবর্তে hylHVGpআপনার পক্ষে মোটামুটি মোটরসাইকেলের প্রশ্নে @DJMcMayhem যা করতে পারে তা করতে পারে hxVp। আমি নিশ্চিত না আপনি কেন Gসেখানে put ুকিয়েছেন, সব কি এক লাইন নয়? এছাড়াও dhVpকাজ করবে।
nmjcman101

@ nmjcman101 হ্যাঁ হ্যাঁ, কীবোর্ডটি মাল্টলাইন হিসাবে Gব্যবহৃত হয়েছিল তখন থেকেই আমি অবশ্যই তা রেখেছিলাম । ধন্যবাদ!
কৃতিমিক লিথোস

2

পাওয়ারশেল, 82 বাইট

$k="1234567890-=qwertyuiop[]\asdfghjkl;'
zxcvbnm,./";$k[$k.IndexOf((read-host))-1]

এন্টার কীটি সমর্থিত, তবে এটির সাথে পরীক্ষা করা যায় না Read-Hostকারণ হিট করার এন্টারটি কোনও মান ছাড়াই পাওয়ারশেলের কিছুই দেয় না।


2

জাপট , 56 42 বাইট

;D=Dv ·q i"[]\\",A i";'",22 +",./")Dg1nDbU

ব্যাখ্যা

;D=Dv ·q i"[]\\",A i";'",22 +",./")Dg1nDbU

;D=D                                        // Shortcut for QWERTY (with newlines and spaces), assigning to variable D
    v                                       // Setting D to lowercase
      ·q                                    // Joining D into an array with no spaces or newlines
        i"[]\\",A                          // Inserting "[]\" into index 10 (A)
                   i";'",22                 // Inserting ";'" into index 22
                           +",./"           // Appending ",./"
                                  Dg        // Returns the character at index:
                                    1n      //    -1+
                                       DbU  //     Index of U (the input)

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


এটি একটি দুর্দান্ত, আপনি একটি ব্যাখ্যা যোগ করতে পারেন?
অ্যালবার্ট রেনশো

1
অ্যালবার্ট রেনশওয়া একটি ব্যাখ্যা যুক্ত করেছেন।
অলিভার

2

জাভা 8, 99 বাইট

c->{String r="`1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm,./";return r.charAt(r.indexOf(c)-1);}

ব্যাখ্যা:

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

c->{                // Method with character as both parameter and return-type
  String r="`1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm,./";
                    //  Literal String of the qwerty keyboard layout of the challenge
  return r.charAt(  //  Return the character at the following index:
    r.indexOf(c)    //   The index of the input character
    -1);            //   -1 to shift it to the left
}                   // End of method

1
আমি হাল ছেড়ে দিলাম। আমি Regex সঙ্গে এটা করতে চেষ্টা ছিল, কিন্তু আমি শোচনীয়ভাবে কিছু বিশেষ অক্ষর ব্যর্থ ... c->"`1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm,./".replaceAll("(?s).*(.)"+c+".*","$1")
অলিভিয়ার

2

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

c=>(s=".,mnbvcxz\n';lkjhgfdsa\\][poiuytrewq=-0987654321`")[s.indexOf(c)+1]

যেহেতু /আমার স্ট্রিংয়ে নেই, indexOfপ্রত্যাবর্তন -1, যা যখন বর্ধিত হয় তখন .আউটপুট হয়। একটি স্ট্রিং প্রক্রিয়াজাত করতে 93 বাইট:

s=>s.replace(/./g,c=>s[s.indexOf(c)+1],s="><mnbvcxz\n';lkjhgfdsa\\][poiuytrewq=-0987654321`")

@ কেভিন ক্রুইজসেন এই ঘটনাক্রমে এই তিনটি চাবি স্থানান্তরিত করে তা চিহ্নিত করার জন্য আপনাকে ধন্যবাদ। আমি এখন তাদের unshided।
নিল

1

জিএনইউ সেড , 72 + 1 (আর ফ্ল্যাগ) = 73 বাইট

s:$:`1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm,./:
s:(.).*(.)\1.*:\2:

রিটার্ন কীটি পরীক্ষা করা যায় না, কারণ নকশার সাহায্যে \nডিলিমেটার হিসাবে ইনপুট বিভক্ত হয় এবং তারপরে লাইনগুলি যতবার যায় স্ক্রিপ্ট চালায়।

পরীক্ষা চালান: অবিচ্ছিন্ন ইনপুট-আউটপুট জুড়ি (Ctrl + D বা Ctrl + C চাপলে)

me@LCARS:/PPCG$ sed -rf shift_key.sed
s
a
4
3
=
-
a
\
1
`
\
]

1

05AB1E , 50 বাইট

'`žhÀ"-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm,./"JDÀ‡

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

ব্যাখ্যা:

'`                                                  # 1 char string: `
  žh                                                # Push numbers 0123456789
    À                                               # Rotated 1 left (123456890)
     "-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm,./"      # Push string literal
                                              J     # Join all elements pushed to the stack to one string
                                               D    # Duplicate
                                                À   # Rotate 1 left
                                                 ‡  # Transliterate: a.get(b.indexOf(input))

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