সালাম অপসারণ


11

চ্যালেঞ্জ

হাই, স্ট্রিংটিকে ইনপুট হিসাবে দেওয়া হয়েছে, স্ট্রিংয়ের শুরুতে পাওয়া কোনও অভিবাদন সরিয়ে দিন

প্রোগ্রাম যা 50 বাইটের অধীনে সবচেয়ে সঠিক বিকল্পগুলি সম্পাদন করে।

অভিবাদন

আরে, সালাম নিম্নলিখিত শব্দগুলির মধ্যে একটি হিসাবে সংজ্ঞায়িত করা হয়েছে:

  • ওহে
  • অঁ্যা
  • হ্যালো
  • প্রিয়
  • শুভেচ্ছা
  • হ্যায়
  • বলছি
  • Hii
  • কেমন আছেন
  • ফোন করেই বলা যায়
  • খড়
  • heya
  • হ্যালো
  • hihi
  • অভিবাদন

প্রথম চিঠি মূলধন হতে পারে।

অভিবাদনের পরে সর্বদা একটি কমা এবং / অথবা একটি একক স্থান থাকবে যা অবশ্যই মুছে ফেলতে হবে। কমা এবং স্থানটি কোনও ক্রমে ( ,<space>বা <space>,) হতে পারে এবং উভয়ই সরানো উচিত।

অভিবাদন এবং নিম্নলিখিত শব্দটি কেবলমাত্র কমা এবং / অথবা একক স্পেস দ্বারা পৃথক হবে।

তারপরে আপনাকে অবশ্যই শব্দের প্রথম অক্ষরকে মূলধন করতে হবে যা অভিবাদন অনুসরণ করবে। এমনকি যদি কোনও প্রতিস্থাপন না ঘটে থাকে, আপনার এখনও আউটপুটটির প্রথম শব্দটি মূলধন করা উচিত।

মূলধন শুধুমাত্র ছোট বর্ণমালার অক্ষরের ক্ষেত্রে প্রযোজ্য (abcdefghijklmnopqrstuvwxyz )। আপনার অন্য কোনও চরিত্রটি যেমন ছিল তেমন ছেড়ে দেওয়া উচিত।

সালাম সর্বদা স্ট্রিংয়ের শুরুতে থাকবে। আপনার যে অভিবাদনটি নেই তা প্রতিস্থাপন করা উচিত নয়আপনার শুরুতে এমন ।

সর্বদা সালাম নাও থাকতে পারে।

আপনার কোডটি 50 বাইটের নিচে হতে হবে।

উদাহরণ

Input > Output

Salutations, what's going on? > What's going on?
hello i have quetions how does juice an avocado > I have quetions how does juice an avocado
How d'you do > How d'you do
Hey,You! > You!
hola cows eat hay > Cows eat hay
hey Hi there! > Hi there!
hihi ,guys > Guys

পরীক্ষার ব্যাটারি

হোল, মোট 1000 টি আলাদা ইনপুট রয়েছে:

উপরের উভয়টি পুনরুদ্ধার করার জন্য একটি বাশ কমান্ড

wget https://raw.githubusercontent.com/beta-decay/Remove-Substitutions-Battery/master/{inputs,replaced}.txt

জয়লাভ

হাউডি, জয় 1000 এর উপরে ইনপুট থেকে সবচেয়ে সঠিক বিকল্প সহ প্রোগ্রাম।

আপনার প্রোগ্রামটি যেভাবে ইনপুটগুলি হ্যান্ডল করে তা সঠিকভাবে আপনার শিরোনামটিতে অবশ্যই রাখতে হবে:

# Language Name, percentage%

আমি কেন পুরোপুরি নিশ্চিত নই যে কেন জেফ এটিকে একটি জিনিস তৈরি করেছিল তবে তা সত্ত্বেও এটি একটি দুর্দান্ত চ্যালেঞ্জ তৈরি করে।


3
s=>System.Text.RegularExpressions.Regex.Replace();এমনকি কোনও প্যাটার্ন নির্দিষ্ট করার আগে 50 বাইট, এটি তখন সি # আউট। (অবশ্যই একটি রেজেক্স পদ্ধতির সাথে)
TheLethalCoder

1
পাইথনও বাইরে (রেজেক্স সহ) :(
গ্যাবার ফেকেট

আপনি সর্বদা 31.3% স্কোরের জন্য প্রদত্ত ইনপুটটি ফিরিয়ে দিতে পারেন।
ইয়ান মিলার

চ্যালেঞ্জ উঠার শুরুতে অভিবাদন সম্পাদনা করার জন্য অনুরোধ করুন। ;)
ড্রাকো 18s আর

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

উত্তর:


8

GNU সেড, 78% 100%

/^\w*[wd]\b/!s/^[dghs][eruaio]\w*\W\+//i
s/./\U&/

(49 বাইট)

পরীক্ষার ব্যাটারিটি বেশ সীমাবদ্ধ: আমরা প্রতিটি লাইনে কোন শব্দটি প্রথম প্রদর্শিত হয় তা গণনা করতে পারি:

$ sed -e 's/[ ,].*//' inputs.txt | sort | uniq -ic
 40 aight
 33 alright
 33 dear
 33 g'd
 41 good
 36 greetings
 35 guys
 31 hai
 33 hay
 27 hello
 33 hey
 37 heya
 43 hi
 34 hihi
 29 hii
 35 hiya
 45 hola
 79 how
 37 howdy
 33 kowabunga
 39 salutations
 32 speak
 34 sweet
 40 talk
 36 wassup
 34 what's
 38 yo

অভিবাদন অপসারণ করা হবে দিয়ে শুরু d, g, hবা s(অথবা সংস্করণ বড়হাতের উহার); সেই চিঠিগুলি দিয়ে শুরু করা অ-অভিবাদন

 33 g'd
 41 good
 79 how
 32 speak
 34 sweet

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

যখন আমরা একটি প্রাথমিক শব্দ দেখতে পাই সেগুলির ( / ^[dghs]\w*), কেস-সংবেদনশীলভাবে ( /i), এবং এরপরে কমপক্ষে একটি শব্দহীন অক্ষর ( \W\+) এর পরে শুরু হয়, তারপরে খালি স্ট্রিংয়ের সাথে প্রতিস্থাপন করুন। তারপরে, প্রথম অক্ষরটিকে তার বড় বড় সমতুল্য ( s/./\U&/) দিয়ে প্রতিস্থাপন করুন ।

যে আমাদের দেয়

s/^[dghs]\w*\W\+//i
s/./\U&/

আমরা এখন এটি কিছুটা পরিমার্জন করতে পারি:

  • ভ্রান্ত-ধনাত্মকতার বৃহত্তম সেটটি হ'ল howতাই আমরা নেতিবাচক পরীক্ষার সাথে উপসর্গ রেখে বিকল্পটিকে শর্তযুক্ত করি:

     /^[Hh]ow\b/!
  • আমরা দ্বিতীয় চিঠি উপর ফিল্টার করতে পারে, নির্মূল করার g'd, speakএবং sweet:

    s/^[dghs][eruaio]\w*\W\+//i
  • এটি কেবল goodএকটি মিথ্যা ইতিবাচক হিসাবে ছেড়ে যায় । উভয় wবা এর মধ্যে শেষ হওয়া শব্দগুলি নির্মূল করতে আমরা উপসর্গ পরীক্ষাটি সামঞ্জস্য করতে পারি d:

    /^\w*[wd]\b/!

প্রদর্শন

$ diff -u <(./123478.sed inputs.txt) replaced.txt | grep ^- | wc -l
0

9

রেটিনা , 68% 72.8% (পুরানো) 74.8% 77.5% (নতুন পরীক্ষার ব্যাটারি)

i`^h(a[iy]|eya?|i(h?i|ya|)|ello)[ ,]+

T`l`L`^.

এটি অনলাইন চেষ্টা করুন! সম্পাদনা করুন: @ মার্টিনএেন্ডারের টিপসের সাহায্যে 4.8% (পুরানো) 2.7% (নতুন) কভারেজ পেয়েছে।


1
আমি মনে করি আপনি [ ,]+ আরও কিছু বাইট নিঃসরণ করতে পারেন। আপনি hবিকল্পটি থেকে নিষ্কাশন করতে পারেন ।
মার্টিন ইন্ডার

নিশ্চিত নয় তবে i`^h(a[iy]|eya?|i(h?i?|ya))[ ,]+এটির কাজ করতে পারে যার অর্থ আপনার আট বাইট
এএসসিআইআই-

@ এএসসিআইআই-তে কেবল h?i?কিছুই বাঁচায় না h?i|এবং এটি মিলবে hih(যদিও এটি আমি জানি না এটি এমনকি পরীক্ষার ক্ষেত্রেও রয়েছে)।
মার্টিন ইন্ডার

প্রকৃতপক্ষে, আপনি যদি এটি করেন তবে এটি একটি বাইট সংরক্ষণ করে ih?i?|iya
মার্টিন ইন্ডার

সম্ভবত i`^h(a[iy]|eya?|ih?i|iya|ola|ello)[ ,]+তখন
এএসসিআইআই-

6

পিএইচপি, 60.6%

50 বাইট

<?=ucfirst(preg_replace("#^[dh]\w+.#i","",$argn));

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

পিএইচপি, 59.4%

49 বাইট

<?=ucfirst(preg_replace("#^h\w+,? #i","",$argn));

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

পিএইচপি, 58.4%

50 বাইট

<?=ucfirst(preg_replace("#^[gh]\w+.#i","",$argn));

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


1
60.1%:#^[gh]\w+.#
manatwork

আরে, আমি একটি নতুন পরীক্ষার ব্যাটারিতে পরিবর্তন করেছি, আপনি কি নতুন উত্তর দিয়ে নিজের উত্তরটি আপডেট করতে পারবেন? ধন্যবাদ
বিটা

@ বেটাডে আপডেট হয়েছে
জার্গ হালসারম্যান

4

ভিম, 55.4% 44.4%

df,<<vgU

ব্যাখ্যা:

df,    Delete until and including the first comma
<<     Remove leading spaces
vgU    Uppercase first letter

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