এবং সমস্ত লোক বলেছিল ...


14

উদ্দেশ্য পাঠ্যের একটি ইনপুট দেওয়া হয়েছে যাতে অক্ষরগুলি থাকে না [বা ], নিম্নলিখিত ক্রিয়াগুলি সম্পাদন করে:

  1. প্রতিটি উদাহরণের জন্য Amenঅন্তত একটি বড় হাতের অক্ষর দিয়ে (তাই সমস্ত উদাহরণ Amenব্যতীত amen), আউটপুট একই Amen(ক্যাপিটালাইজেশন ধরে রাখা)।
  2. প্রতিটি দৃষ্টান্তের জন্য /all the people said[?: ]/i(এটি একটি নিয়মিত এক্সপ্রেশন), আউটপুটও (যে Amenকোনও ক্ষেত্রে ভাল is

প্রতিটি আউটপুটের পরে, আপনি যে কোনও ধ্রুবক বিভাজক চয়ন করতে পারেন , যেমন একটি নতুন লাইন, স্থান বা কিছুই না।

এটি একটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জিতে।

উদাহরণ IOs

Input: I said AMEN! AMEN, PEOPLE!
Output: AMENAMEN         ; any separator is fine, I choose none.

Input: amen amen amen amen
Output:                  ; nothing

Input:                   ; empty
Output:                  ; nothing

Input: *blah blah blah* And all the people said?
Output: Amen

Input: all the people said:
Output: Amen

Input: AMEN AMeN AmeN aMEN amen AmEn
Output: AMEN AMeN AmeN aMEN AmEn

Input: All the people said Amen! And all the people said AMEN!
Output: Amen Amen Amen AMEN

Input: LAMEN! Amen.
Output: AMEN Amen

Input: AmenAmenAmenAmenAMENamen
Output: Amen Amen Amen Amen AMEN

Input: And he was like, "Amen", then we were all like, "Amen, bruh."
Output: Amen Amen

Input: And all the aMen people said.
Output: aMen

বোনাস

  • -20 বাইট যদি আপনি "দখল" যতিচিহ্ন করতে পারেন যে অনুসরণ করে Amen, অর্থাত্, Amen! => Amen!, AmEN. => AmEN., I said Amen, bruh. => Amen,, এবং AMEN!!!! => AMEN!!!!!একমাত্র অক্ষর একাধিকবার সংরক্ষণ করা যায়। .?!,শুধুমাত্র অক্ষর এইভাবে সংরক্ষণ করা হয়।
  • -40 বাইট , তাহলে এর একটি দৃষ্টান্ত হল amen, আউটপুট, Heresy! at index [i]কিছুই, যেখানে পরিবর্তে [i]আপত্তিকর শব্দ অর্থাত্ সূচি amen

বোনাস আইও

ইনপুট এবং আউটপুট ফর্ম হয় input => output। (এখানে বিভাজক একটি স্থান।)

BONUS 1
Can I get an Amen! => Amen!
AMEN! and AMEN! and a final Amen... => AMEN! AMEN! Amen.
Amen? Amen, and amEn! => Amen? Amen, amEn!

BONUS 2
The man sighed and said, "amen," and left. It's AMEN! => Heresy! at index [26] AMEN!

লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি আলাদাভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

# Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


না amenগুলি অনুক্রমে হলে কি চলে?
জাচ গেটস

@ জ্যাচগেটস হ্যাঁ
কনর ও'ব্রায়েন

আপনি কীভাবে "আপত্তিকর বাক্যটির সূচক" নির্ধারণ করেন?
জ্যাচ গেটস

@ZachGates সূচী হতে aমধ্যে amen। উদাহরণস্বরূপ, G amen => 2যদি আপনার ভাষা শূন্য-সূচকযুক্ত হয়; 3 যদি এটি এক-সূচক হয়।
কনর ও'ব্রায়েন

AMEN!!!! => AMEN!!!!এবং এখনও and a final Amen... => Amen.?
এইসুইটিআইস ব্ল্যাকনট

উত্তর:


11

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

S`amen
i`all the people said[?: ]
amenx
!i`amen([.,?]|!*)

কোডটি যদি 57 বাইট দীর্ঘ এবং -20 বাইট বোনাসের জন্য যোগ্যতা অর্জন করে । এটি অনলাইন চেষ্টা করুন!

রেটিনার কাছে আমার পার্ল উত্তর পোর্ট করার জন্য @ মার্টিনব্যাটনারকে ধন্যবাদ !

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

S`                          Split the input at...
  amen                      matches of "amen".
i`                          Case-insensitively search for
  all the people said[?: ]  matches of "all the people said",
                            followed by '?', ':' or ' '...
    amenx                   and replace them with "amenx"
!i`                         Print all case-insensitive matches of...
  amen([.,?]|!*)            "amen", followed either by a single '.',
                            ',' or '?', or by 0 or more '!'s.

1
আমি কি ([.,?]|!*)আমার উত্তরের জন্য আপনার বিরামচিহ্ন ম্যাচের প্যাটার্নটি ব্যবহার করতে পারি? আমি এটি দেখেছি এবং এটি প্রত্যাহার করতে পারি না (এবং আমি অবশ্যই এর থেকে ভাল সমাধান খুঁজে পাইনি!)। এটি অবশ্যই আপনার পরাজিত করবে না :), তবে আমি চুরি করতে চাই না, এবং আমি এর মতো সাব-সমস্যার সমাধান orrowণ নেওয়ার শিষ্টাচার সম্পর্কে পুরোপুরি নিশ্চিত নই।
অ্যাপসিলাররা

3
@ অ্যাপসিলার আইনত, এখানে সমস্ত সামগ্রী সিসি-বাই-এসএ হিসাবে লাইসেন্সযুক্ত, যার অর্থ আপনি এট্রিবিউশন সহ এটি অবাধে ব্যবহার করতে পারেন। নৈতিকভাবে, কারওর সমাধানটিকে অন্য ভাষায় আউটগল্ফ করার জন্য পোর্ট করা তার উপর কমবেশি ত্রুটিযুক্ত, তবে কারওর উত্তরের একটি ক্ষুদ্র অংশ নেওয়া সর্বদা ভাল।
ডেনিস

7

ভিবিএ, 193 বাইট

Function v(b)
For i=1 To Len(b)
If StrConv(Mid(b,i,19),2) Like "all the people said" Then v=v& "Amen"
q=Mid(b,i,4):k="amen"
If StrConv(q,2) Like k And Not q Like k Then v=v& q
Next
End Function

কোনও বিচ্ছেদ নয়, কোনও রেজেক্স নেই, কোনও বোনাস নেই। একটি সংস্করণ ছিল যা উভয় বোনাস পেয়েছিল তবে এটি অনেক দীর্ঘ ছিল।


আপনি পরিবর্তন করে ভ্যান হারান 1 বাইট বাইট for i=1 toথেকেfor i=1To
টেলর স্কট

5

পার্ল, 51 বাইট

s/amen/x/g;s/all the people said[?: ]/amenx/ig;say/amen[.,?]|amen!*/ig

আসল উত্স কোডটিতে 70 বাইট রয়েছে , এটি অবশ্যই perl -nE( +1 বাইট ) দিয়ে চালানো উচিত এবং এটি -20 বাইট বোনাসের জন্য যোগ্যতা অর্জন করে ।


4

পাইথন 2, 155 বাইট

from re import*
F,m=findall,"((?i)amen)"
for i in split(m,input()):
 if F("((?i)all the people said[?: ])",i):print'AMen'
 elif F(m,i)and i!="amen":print i

উদাহরণ

$ python2 test.py
"All the people said Amen! And all the people said AMEN!"
AMen
Amen
AMen
AMEN

3

জাভাস্ক্রিপ্ট, 88 বাইট

108 বাইট - 20 বাইট (বিরামচিহ্নগুলি ধরা)

alert(prompt().replace(/amen/g,' ').replace(/all the people said[?: ]/ig,'Amen').match(/amen(\??!?\.?)+/ig))

এই ছাপে Amen?!.ইনপুট জন্য Amen?!., এবং Amen!ইনপুট জন্য Amen!!!
ডেনিস

@ ডেনিস দুঃখিত, একাধিক বিরাম চিহ্নগুলি একবারে ব্যবহৃত হচ্ছে তা ভেবে দেখেনি, আমি এটি ঠিক করব।
টোবস্টা

@ ডেনিস সবেমাত্র এটি ঠিক করেছেন।
টোবস্টা

@ অ্যাপসিলাররা সেটিও লক্ষ্য করেনি। আমি পরে এটি ঠিক করার চেষ্টা করব।
টোবস্টা

@ অ্যাপসিলার্স ফিক্সড
টোবস্টা

3

গ্রেপ এবং সেড, 85 83 84 77 - 20 = 57 বাইট

sed 's/all the people said[?: ]/Amenx/ig'|grep -oi 'amen[.,!?]*'|grep \[AMEN]

1
এটি ইনপুটটির Amen?জন্য মুদ্রণ করবে all the people said??। আমি যে সর্বোত্তম কাজের সন্ধান করতে পারি তা হ'ল স্ট্রিংটি প্রতিস্থাপন করা Amenx
ডেনিস

ধন্যবাদ @ ডেনিস, আমি আপনার পরিশ্রমটি ব্যবহার করেছি এবং স্কোরটি আপডেট করেছি।
থোর

1
এটি ইনপুটটির amen.জন্য মুদ্রণ করবে amen.। এই স্থির আপনার উত্তর কমান হবে: শুধু পরিবর্তন grep -v '^[amen]*$'করতে grep \[AMEN]
এইচডিভি

@hvd: তুমি ঠিক আছে, এই অনেক ভালো :-)
থর

3

পার্ল, 103 - 60 = 43 বাইট

#!perl -p
s/amen/Heresy! at index [@-]/g;s/all the people said[?: ]/Amen /gi;s/(amen([.,?]|!*)|h[^h]+\])\K|.//gi

শেবাংকে এক হিসাবে গণনা করা, স্টিডিনের কাছ থেকে ইনপুট নেওয়া হয়। -20 বাইটের বিরামচিহ্ন বজায় রাখে এবং -40-এর জন্য ধর্মবিরোধী সনাক্ত করে


নমুনা ব্যবহার

$ echo amen amen, and all the people said?? amen amen | perl amen.pl
Heresy! at index [0]Heresy! at index [5]AmenHeresy! at index [37]Heresy! at index [42]

$ echo AMEN AMeN AmeN aMEN amen AmEn | perl amen.pl
AMENAMeNAmeNaMENHeresy! at index [20]AmEn

$ echo The man sighed and said, "amen," and left. It's AMEN! | perl amen.pl
Heresy! at index [26]AMEN!

পার্ল, 70 - 20 = 50 বাইট

#!perl -p
s/all the people said[?: ]/Amen /gi;s/amen|(?i:amen([.,?]|!*))\K|.//g

শেবাংকে এক হিসাবে গণনা করা, স্টিডিনের কাছ থেকে ইনপুট নেওয়া হয়। এর জন্য যতিচিহ্ন বজায় রাখে-20 বাইটের ।


নমুনা ব্যবহার

$ echo All the people said Amen, and all the people said AMEN!! | perl primo-amen.pl
AmenAmen,AmenAMEN!!

আপনার প্রথম সমাধানটি ইনপুটটির মতো ব্যর্থ হয় ha]। (কোনও বিষয় নয়, কেবল ওপি'র মন্তব্যটি দেখেছি যে
ইনপুটটিতে

@ThisSuitIsBlackNot আমার মনে হয় না যে ওপি এই প্রশ্নের উত্তর দিয়েছে।
ডেনিস

@ ডেনিস আহ, আপনি ঠিক বলেছেন তবুও আর এক অজানা।
এইসুইটসআইবলাকনট

3

।, 66 - 20 = 46 চর / 80 - 20 = 60 বাইট

ïċ/all the people said[?: ]⍀,`Amen”ċ(/amen⌿,`x”ĉ/amen(\??!?\.?)+⍀)

এখানে চেষ্টা করুন - কেবল ফায়ারফক্স।

এখানে প্রথমবারের মতো পিপিসিএসইএসে। আশা করি এই গল্ফ বেশ ভাল আছে।

সম্পাদনা: প্রকৃতপক্ষে, আমি সিজেমকে মারছি (চরের গণনায়), সুতরাং এটি বেশ ভাল!


1
হ্যাঁ, কেউ আমার ভাষা ব্যবহার করছে! আপনার প্রথম পোস্টের জন্য খারাপ নয়।
মামা ফান রোল

2

সিজেম, 57 বাইট

 q_,,\f{\:I>_4<_el"amen":A=*_A="Heresy! at index ["I+']+@?oK<)"?: "&,*el"all the people said"=A*o}

কোডটি 97 বাইট দীর্ঘ এবং -40 বাইট বোনাসের জন্য যোগ্যতা অর্জন করে ।

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


1
পার্লের চেয়ে লম্বা কি সিজেম? o_O
কনার ও'ব্রায়েন

সিজেমের নিয়মিত প্রকাশ নেই, তাই অবাক হওয়ার মতো কিছু নয়।
ডেনিস

ওহ ... লিখেছেন
কনর ও'ব্রায়েন

2

জাভাস্ক্রিপ্ট, 100 বাইট

alert(prompt().replace(/all the people said[?: ]/ig,'Amen').replace(/amen/g,'x').match(/amen/ig));

3
আপনি ব্যবহার করতে পারেন x=prompt();এবং আপনিও ব্যবহার করতে পারেনalert(prompt().replace(...).replace(...).match)
কনার ও'ব্রায়ান

সম্পন্ন. এখন এটি 100 চর দীর্ঘ।
নটিলাস

2

জাভাস্ক্রিপ্ট, 136 135 - 40 - 20 = 75 বাইট

alert(prompt(A="ameN").replace(/all the people said[?: ]|(amen)([.,?]|!*)|./ig,(v,a,p,i)=>a?a>A?`Heresy! at index [${i}]`:v:v[1]?A:""))

ব্যাখ্যা:

এই কোডটি একটি তিন-অংশী রেজেক্স দ্বারা চালিত যা replaceকলব্যাকের ফলাফলগুলিকে ফিড করে । অংশগুলি হ'ল:

  • all the people said[?: ]- সহজভাবে প্রয়োজনীয় all the people saidপ্যাটার্নের সাথে মেলে
  • (amen)([.,?]|!*)- যেকোনও ক্ষেত্রে amenএবং বিরামচিহ্ন ( যেকোন একটি .,?বা শূন্য বা তার বেশি !, যা বিরামচিহ্ন optionচ্ছিক করে তোলে) আলাদা ম্যাচ গ্রুপগুলিতে মেলে - বিরামচিহ্ন প্যাটার্নের জন্য ডেনিসের credit
  • . - উপরের নিদর্শনগুলির অংশ নয়, অন্য কোনও চরিত্রের সাথে মিল রয়েছে one

অতএব, যে কোনও ম্যাচ অবশ্যই একটি সর্বজনীন স্ট্রিং, punচ্ছিক বিরামচিহ্নের সাথে একটি আমিন ম্যাচ, বা কোনও একক অক্ষর নয় those বাক্যগুলির কোনওটিরই অংশ নয়। স্ট্রিংয়ের যথাযথ অংশগুলি সংরক্ষণ এবং প্রতিস্থাপন করতে আমরা রিপ্লেজার কলব্যাকে যুক্তি ব্যবহার করি এবং প্রতিটি অন্যান্য অক্ষরকে খালি স্ট্রিংয়ে পরিবর্তন করি।

alert(
  // store "ameN" in `A` and then prompt
  prompt(A="ameN")
    .replace(
      // three-part regex:
      /all the people said[?: ]|(amen)([.,?]|!*)|./ig,

      // replacer callback, with arguments
      //   v - total match
      //   a - "amen" match group
      //   p - punctuation match group (unused)
      //   i - index of match
     (v,a,p,i)=>
        a?           // if there is an Amen match
          a>A?      //   if the Amen is lowercase (lexically more than "ameN")
               `Heresy! at index [${i}]`
              :v     //   otherwise, output full Amen with punctuation
         :v[1]?      // if there is no Amen, but more than one character
          A          //   this must be all-the-people; output "ameN"
         :""         // otherwise, not an Amen or all-the-people
  )
)

1

পাইথন 2, 191 - 40 = 151 বাইট

i=input()
a='amen'
for j in range(len(i)):
 s=i[j:j+20];w=s[:4]
 if s[:-1].lower()=="all the people said"and s[-1]in'?: ':print a
 if w.lower()==a:print'Heresy! at index[%d]'%j if w==a else w

কোনও রেজেক্স নয়, এবং বোনাস 2

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