পাঠ্য রিক্রোলগুলি ইনজেক্ট করুন


13

যেহেতু রিক্রোলিং হচ্ছে পৃথিবীর সর্বশ্রেষ্ঠ মেম, আপনি [বিধিগুলি জানেন এবং তেমনি আমিও] আপনাকে সবচেয়ে সংক্ষিপ্ত কোডটি লিখতে হবে যা পাঠ্যগুলিকে অনিচ্ছাকৃত পাঠকের কাছে রিক্রোল করতে পারে। যাক [আপনি নিচে] একটি ইনপুট টেক্সট যা অক্ষর, যতিচিহ্ন থাকতে পারে, এবং স্পেস রয়েছে সেখানে। যে কোনও সময় প্রথম দুটি স্তবকের একটি [মিথ্যা কথা এবং আপনাকে আহত করা] পাঠ্যটিতে প্রদর্শিত হয় ...

We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
I just wanna tell you how I'm feeling
Gotta make you understand

Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you

... তারপরে বন্ধনীতে বাকী রেখাটি sertোকান।

ইনপুট

ইনপুটটি একক লাইন স্ট্রিং যা কেবলমাত্র প্রিন্টযোগ্য এএসসিআইআই সহ optionচ্ছিক ট্রেলিং নিউলাইন থাকে।

আউটপুট

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

অতিরিক্ত বিবরণ:

এটি কোড-গল্ফ , সবচেয়ে কম বাইট জেতা। আপনি কোনও প্রোগ্রাম বা ফাংশন লিখতে পারেন

  • মিলটি ক্ষেত্রে সংবেদনশীল হওয়া উচিত: লিরিক্সে মূলধন করা হলেও we'reরূপান্তরিত হয় । we're [no strangers to love]We're
  • মিলটি লোভী হওয়া উচিত। পরিবর্তে Does he know the answer?রূপান্তর করা উচিতDoes he know the [rules and so do I] answer?Does he know [the rules and so do I] the [rules and so do I] answer?
  • প্রদত্ত গানে কোনও শব্দ যদি একাধিকবার উপস্থিত হয় তবে লাইনটি শেষ করতে যেকোন ঘটনা চয়ন করুন।
  • যদি কোনও শব্দ লিরিক লাইনের শেষ শব্দ হয় তবে এর পরে কিছু sertোকানো হবে না।
  • বিরামচিহ্নকে "শব্দের" অংশ হিসাবে অন্তর্ভুক্ত করা হয়েছে। I'mএটি একটি শব্দ এবং এর সাথে মেলে না I। একইভাবে, you.পিরিয়ডের কারণে কোনও গানের সাথে মেলে না।

কিছু শব্দ যেমন Iলিরিক্সের পাশাপাশি এক লাইনের শেষে একাধিকবার প্রদর্শিত হয়। যেহেতু নিয়মটি হ'ল উপরের গানের কোনও ঘটনাই ব্যবহার করা যেতে পারে, এবং এই ঘটনার একটি লাইনটির শেষে, কোনও মিলের Iপ্রয়োজন নেই। অন্য বিকল্পটি Iহ'ল [just wanna tell you how I'm feeling]

দুটি মিল যদি ওভারল্যাপ হয় তবে আপনি যে কোনও একটি বেছে নিতে পারেন। এর অর্থ এই যে how I'm thinkingহতে পারে how I'm [feeling] thinking [of]বা how [I'm feeling] I'm thinking [of]যেহেতু I'mপারেন অংশ হতে পারে how I'mবা I'm thinking। যদি তবে ইনপুট পাঠ্যটি সহজভাবে হয় I'm thinkingতবে আউটপুটটি হওয়া উচিত I'm thinking [of]

অতিরিক্ত পরীক্ষার মামলা:

I don't know what I'm doing with my life.
is converted to
I [just wanna tell you how I'm feeling] don't know [the rules and so do I] what I'm [thinking of] doing with my life.
Many additional solutions are possible, since words like `I` appear multiple times.


Will someone please save me from these memes?
is converted to
Will someone please save me from [any other guy] these memes?


Two strangers walked into a bar.  One said "hello."  The other said "goodbye."
is converted to
Two strangers [to love] walked into a [lie and hurt you] bar.  One said "hello."  The [rules and so do I] other [guy] said "goodbye."

এই বউ দ্বারা অনুপ্রাণিত চ্যালেঞ্জ ।



দ্বিতীয় পরীক্ষার কেসটি ভুল বলে মনে হচ্ছে ( fromহওয়া উচিত from [any other guy])।
ডুরকনব

উত্তর:


6

গাওক, 316 + 377 = 693

প্রথম কমান্ড লাইন প্যারামিটারটি হ'ল লিরিক্সের ফাইলনাম (375 বাইট +2 ডাকা জন্য = 377)। অন্যান্য সমস্ত ফাইল রিক্রোল করে। প্রিন্ট করুন stdout

BEGIN{FPAT="[^ ]+ *";OFS=""}func d(a){b=tolower(a);sub(/ *$/,"",b);return b}FNR==NR{for(s=$0;NF;$0=s=$0){for(i=1;i<NF;i++){k=k $i;$i="";v[d(k)]="["$0"] "}$0=s;k=$1=""}next}{for(s=$0;NF;$0=s=$0){for(j=NF;(--j)>0&&!(d($0) in v);$(j+1)="");k=v[d($0)];if($0!~/ $/)k=" "k;printf($0 k);for($0=s;j-->=0;$(j+2)="");}print""}

Ungolfed

BEGIN{FPAT="[^ ]+ *";OFS=""}
func d(a){b=tolower(a);sub(/ *$/,"",b);return b}
FNR==NR{
  for(s=$0;NF;$0=s=$0){
    for(i=1;i<NF;i++)
    {
      k=k $i;
      $i="";
      v[d(k)]="["$0"] "
    }
    $0=s;
    k=$1=""
  }
  next
}
{
  for(s=$0;NF;$0=s=$0){
    for(j=NF;(--j)>0&&!(d($0) in v);$(j+1)="");
    k=v[d($0)];
    if($0!~/ $/)k=" "k;
    printf($0 k);
    for($0=s;j-->=0;$(j+2)="");
  }
  print""
}

পরীক্ষার ফলাফল

ইনপুট:

we're
We're
Does he know the answer?
I
how I'm thinking
I'm thinking
I don't know what I'm doing with my life.
Will someone please save me from these memes?
Two strangers walked into a bar.  One said "hello."  The other said "goodbye."
gonna run

আউটপুট:

we're [no strangers to love] 
We're [no strangers to love] 
Does he know the [rules and so do I] answer? 
I [just wanna tell you how I'm feeling] 
how I'm [feeling] thinking [of] 
I'm thinking [of] 
I [just wanna tell you how I'm feeling] don't know [the rules and so do I] what I'm [thinking of] doing with my life. 
Will someone please save me from [any other guy] these memes? 
Two strangers [to love] walked into a [lie and hurt you] bar.  One said "hello."  The [rules and so do I] other [guy] said "goodbye." 
gonna run [around and desert you] 

১. এটি প্রথম পরীক্ষার ক্ষেত্রে ব্যর্থ হয় (এটি জিনিসগুলির মধ্যে whatএবং I'mযা "লোভী" মিলছে না)। ২. এটি তৃতীয় পরীক্ষার কেস ব্যর্থ করে (এটি দুটি স্থানকে এক করে তোলে)। ৩. আপনি যদি আলাদা আলাদা ফাইলে লিরিক্স সঞ্চয় করে থাকেন তবে আপনার সেই ফাইলটি (পাশাপাশি awkকমান্ডে অন্তর্ভুক্ত করার জন্য +2 ) আপনার বাইট গণনায় গণনা করতে হবে।
ডোরকনবব

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

এখন এটি ইনপুট gonna run(প্রত্যাশিত আউটপুট gonna run [around and desert you], প্রকৃত আউটপুট gonna [tell a lie and hurt you] run [around and desert you]) এর জন্য ব্যর্থ । এটি এখনও এক সারিতে একাধিক স্পেস চম্পস করে। আপনার বাইট গণনায় লিরিক্স ফাইলগুলি গণনা করা দরকার, কারণ এটি awkপ্রোগ্রামটির একটি মানক নয় ।
ডুরকনব

@ ডুরকনব ঠিক আছে আমি বেশিরভাগ প্রোগ্রাম পুনরায় প্রয়োগ করেছি এবং gawkএখনই স্থান সংরক্ষণের ক্ষেত্র পৃথককরণের প্রয়োজন require এখন সমস্ত পরীক্ষার কেস পাস করে।
রেনার পি।

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