এক্সকেসিডি: কীবোর্ড ম্যাশ ব্যঙ্গগুলি


16

আরেকটি এক্সকেসিডি অনুপ্রেরণা প্রতিযোগিতা। এটি একটি কীবোর্ড ম্যাশ উপর ভিত্তি করে ।

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

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

দুই বা ততোধিক সারি জুড়ে ব্যতিক্রমী অক্ষরের সমান গণনার ক্ষেত্রে, টাই বিরতি এই ক্রমে নির্ধারিত হয়:

  • সংক্ষিপ্ততম অনন্য তালিকা
  • শীর্ষ সারি

ইনপুট

STDIN, ARGV বা কোনও ফাংশন প্যারামিটারের মধ্য দিয়ে একটি স্ট্রিং

আউটপুট

STDOUT এর একটি স্ট্রিং বা কোনও ফাংশন রিটার্ন। এটিতে প্রতিটি ব্যতিক্রমী চরিত্রটি একবারে হওয়া উচিত, তবে অর্ডার দেওয়ার দরকার নেই।

উদাহরণ

ইনপুট: এফজেএফজেকেএলডিএসকেএফ 7 কেএফডিজে
আউটপুট: 7

ইনপুট: ASDF11111
আউটপুট: asdf ও ডিফেন্ডার

ইনপুট: lkjrhsDdftkjhrksRjd
আউটপুট: rtR

ইনপুট: } * 3% & 2098 @ $ 2k234 # @ $ এম
আউটপুট: }

সর্বাধিক সারি তালিকা
ইনপুট ফেরত : এএসডি! @ # ভিসিএক্স
আউটপুট :! @ #

সংক্ষিপ্ততম অনন্য তালিকা ফিরে এসেছে
ইনপুট: ASdf1233qwER
আউটপুট: 123

সর্বাধিক সংক্ষিপ্ততম তালিকা ফিরে এসেছে
ইনপুট: 12334QWTTSDFDSXVVBBX
আউটপুট: QWT

এটি কোড গল্ফ, তাই স্বল্পতম এন্ট্রি জয়।

উত্তর:


8

সিজেম, 111 89 88 86 84 83 বাইট

la9*~"{}qwertyuiop ;':asdfghjkl ,./<>?zxcvbnm"{_32^}%_'ÿ,^a\S%+{[f&s\e|__|]:,}$0=&

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

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

la9*~     e# Push the input 9 times on the stack.

"{}qwertyuiop ;':<STX>asdfghjkl ,./<>?zxcvbnm"

{_32^}%   e# XOR a copy of each character with 32.
_'<DEL>,^ e# Push a string of all ASCII characters that are missing.
a\        e# Wrap it in an array.
S%+       e# Split the string at spaces and concatenate with the array.
{         e# Sort the chunks according to the following:
  [       e#
    f&s   e# Push the string of characters from the input that are in this chunk.
    \e|   e# If the result is empty, replace it with the input.
    __|   e# Push a copy with duplicates removed.
  ]       e# Collect both strings in an array.
  :,      e# Replace each string with its length.
}$        e#
0=        e# Retrieve the minimum.
&         e# Intersect it with the input.

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