আমি প্যাসিভ আগ্রাসী এবং আমার সাহেবকে তার সন্ধান না করে অপমান করতে চাই


93

কর্মক্ষেত্রে বেশ কয়েক মাস কেটে গেছে এবং আমার মনে হচ্ছে আমি ঠিক আমার বসের মুখে চিৎকার করতে চাই। আমি অবশ্য আমার সমস্যা নেই এমন লোকদের সরাসরি মুখোমুখি হতে পারি না। আমিও আমার চাকরি হারাতে চাই না।

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

আমাকে এমন একটি প্রোগ্রাম লিখুন যা ইনপুট হিসাবে অজানা দৈর্ঘ্যের একটি স্ট্রিং গ্রহণ করে তবে এতে কোনও লাইন ব্রেক নেই। এটি আমি পাঠাতে চাইছি এমন কাঁচা বার্তা হবে।

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

আপনি স্ট্রিংটিকে অন্য কোনও উপায়ে পরিবর্তন করতে পারবেন না, অর্থাৎ আপনি সমস্ত স্ট্রিংকে বড় হাতের অক্ষরে রূপান্তর করতে পারবেন না।

যদি প্রশ্নে থাকা স্ট্রিংটি এভাবে ফর্ম্যাট করা যায় না, তবে আপনাকে মূল স্ট্রিংটি ফিরিয়ে দিতে হবে। স্ট্যান্ডার্ড ইনপুট থেকে ইনপুট পড়ুন।

সাধারণ নিয়ম প্রযোজ্য: এইচটিটিপি অনুরোধ নয়, টিএইচটিটিজি-র মারভিনকে পরামর্শ নেই, ইত্যাদি

উদাহরণ ইনপুট:

প্রিয় বস, জিনিসগুলি কেমন? আমার নজরে এসেছে যে আমি গত শুক্রবার এই দুর্ঘটনার জন্য সমস্ত দোষ পেয়েছি। এটির বেশিরভাগ অংশই নয়। এটি প্রতিটি শেষ বিট। আমার কি মনে করা ভুল যে দলের বাকিরা কমপক্ষে কিছুটা দায়বদ্ধ ছিল? সর্বোপরি, আমাদের ছয় জনই এই দর্শনীয় স্থান থেকে যুক্ত হয়েছিল। এমন নয় যে আমার মনে হয় আমার বিনা দোষে দাঁড়ানো উচিত। একদমই না. আমি যা বলছি তা হ'ল: আমি যথাসাধ্য চেষ্টা করি। আমি সর্বোচ্চ চেষ্টা করি. আমি ক্রমাগত উন্নতি। এবং আমি প্রতিনিয়ত দায়িত্ব নিচ্ছি। সাধারণভাবে বলতে গেলে, আমি আমার ক্রিয়াকলাপের জন্য সম্পূর্ণ দায়িত্ব গ্রহণের সাথে খুব ঠিক আছি। তবে এই বসন্তের পরে, মনে হয় আমি প্রাপ্য তার চেয়ে বেশি পেয়েছি। ফ্লাকেনহাউজার চুক্তি মনে আছে? কেউ আশা করতে পারে ঠিক তেমন মসৃণ হয়ে যায়। বা তাই এটি প্রথমে মনে হয়েছিল। একেবারে শেষ মুহুর্তে জিনিসগুলি বিচ্ছিন্ন হয়ে পড়েছিল। দলটির সকলেই সম্মত হয়েছিলেন যে ঝাল পরিকল্পনা বা অব্যবস্থাপনা সংস্থাগুলির চেয়ে এটি একটি অদ্ভুত দুর্ঘটনার মতো। তবুও, আমি - একা - এর জন্য দোষ নিয়েছিলাম। যদিও আমি তখন কিছু না বলেছি, দোষ নেওয়ার জন্য আমার সহনশীলতার স্তরটি তত্ক্ষণাত মারাত্মক কর্ণপাত করেছিল। সেদিক থেকে, আমি সবসময় দ্বিগুণ চেষ্টা করা দরকার বলে মনে করি, যাচাই বাছাইয়ের জন্য escape এবং এখনও, আমরা আবার এখানে। আমার সমস্ত কৃতিত্ব সত্ত্বেও। ঠিক যেখানে আমরা সবসময় এই দিনগুলি শেষ বলে মনে হয়। প্রতিটি একক প্রকল্প। এটা অসহনীয় হয়ে উঠছে। শুধু তদন্ত থেকে বাঁচতে। এবং এখনও, আমরা আবার এখানে। আমার সমস্ত কৃতিত্ব সত্ত্বেও। ঠিক যেখানে আমরা সবসময় এই দিনগুলি শেষ বলে মনে হয়। প্রতিটি একক প্রকল্প। এটা অসহনীয় হয়ে উঠছে। শুধু তদন্ত থেকে বাঁচতে। এবং এখনও, আমরা আবার এখানে। আমার সমস্ত কৃতিত্ব সত্ত্বেও। ঠিক যেখানে আমরা সবসময় এই দিনগুলি শেষ বলে মনে হয়। প্রতিটি একক প্রকল্প। এটা অসহনীয় হয়ে উঠছে।

উদাহরণ আউটপুট:

প্রিয় বস, জিনিসগুলি কেমন?
আমার নজরে এসেছে যে আমি গত শুক্রবার এই দুর্ঘটনার জন্য সমস্ত দোষ পেয়েছি। এটির বেশিরভাগ অংশই নয়।
এটি প্রতিটি শেষ বিট।

আমার কি মনে করা ভুল যে দলের বাকিরা কমপক্ষে কিছুটা দায়বদ্ধ ছিল? সর্বোপরি, আমাদের ছয় জনই এই দর্শনীয় স্থান থেকে জড়িত ছিল।
এমন নয় যে আমার মনে হয় আমার দোষ না দিয়ে দাঁড়ানো উচিত। একদমই না.

আমি যা বলছি তা হ'ল: আমি যথাসাধ্য চেষ্টা করি। আমি সর্বোচ্চ চেষ্টা করি. আমি ক্রমাগত উন্নতি। এবং আমি প্রতিনিয়ত দায়িত্ব নিচ্ছি।

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

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

এটি কোড গল্ফ। সংক্ষিপ্ততম কোড জিতেছে।


4
বাক্য-সমাপ্তি বিরামচিহ্নের পরে কি লাইন বিরতি ঘটতে হবে? বা নিম্নোক্ত অক্ষরের উচ্চতর ক্ষেত্রে যতক্ষণ না কিছু সংক্ষিপ্তসার মধ্যে থাকতে পারে তার কিছু আগে আমার সঠিক রেখা বা বিরতি থাকতে পারে? বলা হচ্ছে, অপমান-সম্পর্কিত চ্যালেঞ্জগুলি এখানে অতীতে ভালভাবে কাটেনি, তবে আপনি হয়ত পালিয়ে যেতে সক্ষম হবেন, কারণ আপনি নতুন অশ্লীলতার সাথে অংশগ্রহণকারীদের সৃজনশীলতার জন্য জিজ্ঞাসা করেননি।
মার্টিন ইন্ডার

1
যথাযথ বিশেষ্যগুলির আগে লাইন ব্রেকিং পুরোপুরি ঠিক।
ক্রিস্টোফার ওহলসন

3
@ নাটকেরখফস আমি মনে করি এটি পিছনের দিকে: যেহেতু গোপন বার্তাটি একটি সম্পূর্ণ বার্তায় মাত্র কয়েকটি চরিত্র, তাই আমি মনে করি যে অপমানটি গাছ এবং বার্তাটি বন। আমরা সত্যিই আশা করি যে বস গাছ দেখে না, বন দেখে।
জোশুয়া টেলর

11

57
আমি অবশ্যই স্বীকার করব যে আমি যখন হট প্রশ্নগুলির তালিকায় এটি দেখলাম তখন আমি কিছুটা দ্বি-গ্রহণ করেছি। যখন আমি দেখলাম এটি পিসিজি ছিল এবং কর্মক্ষেত্র নয় ... ভাল ... আমি বলব না আমি কিছুটা হতাশ হইনি।
বেনম

উত্তর:


54

সিজেম, 56 53 বাইট

q_"DIEIINAAGGREASEFFIRE"{S@:A+S@+#:BA<AB>}%(!B)*\N*@?

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

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

q_                     Read all input from STDIN and push a copy.
"DIEIINAAGGREASEFFIRE" Push the characters we're searching for in form of a
                       string. We'll try to prepend a linefeed to all of them.
                       Some characters are duplicated to prepend two linefeeds.
{                      For every character C in that string:
  S@                   Push ' ' and rotate the string on the stack on top of it.
  :A                   Save the string (initially the input) in A.
  +                    Prepend the space to A.
  S@+                  Construct the string " C".
  #                    Compute the index of " C" in the modified A.
  :B                   Save the index in the variable B.
  A<                   Push the substring of A up to the index.
  AB>                  Push the substring of A after the index.
}%
(                      Shift the first element of the resulting array.
!                      Compute the logical NOT. This pushes 1 if and only if the
                       array's first element is an empty string, which is true
                       if and only if the input string started with a D.
B)                     Push the last value of B and increment. If the last match
                       was successful and, therefore, all matches were successful,
                       B != -1, so B + 1 != 0.
*                      Compute the product of the two topmost items on the stack.
\                      Swap the resulting Booleanr with the array of substrings.
N*                     Join the array, separating by linefeeds.
@                      Rotate the input string on top of the stack.
?                      Select the joined array if the Boolean is 1 and the input
                       string otherwise.

14
আমি কেন আপনার এত উত্তর জোগাড় করে দেখছি? ওহ হ্যাঁ, কারণ তারা পাগল।
প্রিমো

সমস্ত ক্যাপগুলিতে অত্যন্ত ক্রুদ্ধ শব্দ থাকা ইনপুটটিতে এটি কী করে?
অ্যাডাম ডেভিস

2
@ অ্যাডামডাভিস: "সি" এবং "এ" তে স্পেস প্রস্তুত করা নিশ্চিত করে যে ওয়ার্ডআরএস লাইনফিড দ্বারা ভেঙে যাবে না।
ডেনিস

25

পার্ল - 60 বাইট

#!perl -p
$_=(join$/,$_=~('DIE\IN\A\GREASE\FIRE'=~s/./($&.*)/gr))||$_

এক হিসাবে শেবাংকে গণনা করা হচ্ছে।

এই দ্রবণটি নীচের রেজেক্স তৈরি করতে অন্তঃস্থল স্ট্রিং ব্যবহার করে:

(D.*)(I.*)(E.*)(\.*)(I.*)(N.*)(\.*)(A.*)(\.*)(G.*)(R.*)(E.*)(A.*)(S.*)(E.*)(\.*)(F.*)(I.*)(R.*)(E.*)

যা ব্যবহার Regex অনুরূপ m.buettner এর সমাধান । জেনারেটেড রেজেক্সটি তখন ইনপুটটির সাথে মিলে যায়। একটি তালিকার প্রসঙ্গে, এটি ম্যাচের প্রতিটি গ্রুপকে সমন্বিত একটি অ্যারে ফিরিয়ে দেবে, যা একটি নতুন লাইন দ্বারা যুক্ত হয়েছে ('ম্যাচ কিছুই নয়' গ্রুপগুলির কারণ (\.*), একটি অতিরিক্ত নতুন লাইন sertোকানো)। যদি কোনও মিল না থাকে তবে মূল স্ট্রিং এর পরিবর্তে আউটপুট।


পার্ল - 73 বাইট

#!perl -pl
$s=$_}for(map$s!~s/.*?(?=$_)//?$\='':$&,'DIEI.NA.G.REASEF.IRE$'=~/./g){

দু'টি হিসাবে শেবাংকে গণনা করা হচ্ছে।

এটি যথোপযুক্ত ডিলিমিটারগুলিতে স্ট্রিং বিভক্ত হয় এবং একটি অ্যারেতে টুকরো সংগ্রহ করে। যদি তাদের মধ্যে কোনওরও মিলতে ব্যর্থ হয় তবে আউটপুট রেকর্ড বিভাজক (যা -lবিকল্পের সাথে একটি নতুন লাইনে সেট করা হয়েছিল ) আনসেট করা আছে, এবং সুতরাং স্ট্রিংটি আউটপুটটি আনমোডাইফাইড হয়।


শেবাংয়ের কি পরম পথের দরকার নেই?
celtschk

কেন বিন্দুগুলি (ডিআইআইআইএনএ ...?
এডসি 65

@celtschk, আপনার সিস্টেমের উপর নির্ভর করে এবং আপনি কীভাবে স্ক্রিপ্টটি চালিত করতে চান। হিসাবে আহ্বান জানানো হয়েছে ./script.pl, তারপর সম্ভবত হ্যাঁ। যদি হিসাবে আহ্বান করা হয় perl script.pl, তবে না।
প্রিমো

1
@ edc65 .পর Iএকটি অতিরিক্ত সম্পর্কে newline ঢোকাব আগে I (কারণ এটি একই অবস্থানে আবার মিলে যায়)। সম্ভবত কিছুটা পাল্টা স্বজ্ঞাত।
প্রিমো

2
@celtschk শিবাংয়ের স্যুইচগুলি এখনও ব্যাখ্যা করা হবে। আপনি -Mএটি শেবাংয়ের বিকল্পটি যুক্ত করে পরীক্ষা করতে পারেন , যা মারাত্মক ত্রুটির সাথে মারা যাবে: Too late for "-M" option at line 1.তবে আমি এটির মূল কারণটিও, আমিও এটি ব্যাখ্যা করার প্রয়োজন বোধ করি perl -pl script.pl- এটি বর্তমান রূপে চালানো দরকার - এটি চলমান হিসাবে হয়।
প্রিমো

12

গল্ফস্ক্রিপ্ট, 53 বাইট

দেখে মনে হচ্ছে ডেনিস এবং আমি সমানতালে একই জাতীয় জিনিস নিয়ে এসেছি ... তবে এখানে আমার চেষ্টা রয়েছে।

অনলাইনে চেষ্টা করতে প্রতিটি কোড ব্লকের আগে লিঙ্কগুলিতে ক্লিক করুন। দুর্ভাগ্যক্রমে, অনলাইন অনুবাদক আপনাকে 1024 টির চেয়ে বেশি অক্ষরের কোড চালানোর অনুমতি দেবে না, তাই আমাকে পরীক্ষার ইনপুটটির কিছু ... "সংক্ষেপণ" সম্পাদন করতে হয়েছিল। তবে এটি এখনও কাজ করে না।

স্কোয়াড সংস্করণ

..(\;68=(>"IEIINAAGGREASEFFIRE"{1$.@?:^<n@^>}/](]^0<=

প্রশ্নহীন, মন্তব্য করা সংস্করণ

.       # (Save input)
.(\;    # Get first character
68=(>   # If 'D', work with input; else, work with one-character string
"IEIINAAGGREASEFFIRE"
{       # For each character
 1$.@   # (Duplicate message twice)
 ?:^    # Find first index of character
 <n     # Extract part before index and add a newline
 @^>    # Extract part including and after index as new "message"
}/      # (Close loop)
](]^0<= # If last line was successfully matched, select result; else, select input

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


1
চরিত্রটি কোনও শব্দের প্রথম চরিত্র কিনা তা আপনার চেক করা লাগবে না। উদাহরণ স্বরূপ. "ফিফা" কেবলমাত্র এফের জন্য ব্যবহার করা উচিত, "আমি" বা "এ" এর জন্য নয়।
ডেনিস

@ ডেনিস আমি স্পেসিফিকেশনের কোনও অংশ দেখতে পাইনি যার জন্য এটি প্রয়োজন। তবে আপনি যদি নিজের উপর এই বিধিনিষেধ আরোপ করেন, আপনার সমাধান থেকে উত্তোলন মনে হচ্ছে এটি এর উচ্চতর গল্ফ-নেসকে আরও দৃify় করবে।
রানার 1112

1
এম। বেটনার এবং আমি এই প্রশ্নের ব্যাখ্যা দিয়েছি (আমাকে অন্যান্য উত্তরগুলি ঘুরে দেখার দরকার ছিল), তবে আপনি ঠিক বলেছেন, এটি কোথাও বলে না যে আমরা শব্দ ভাঙতে পারি না।
ডেনিস

7

রুবি - 140

a="DIEINAGREASEFIRE";n=[4,6,7,13];i=0;o='';s=ARGV[0]
s.chars.each{|c|
if c==a[i]
i+=1;o+="\n";o+="\n"if n-[i]!=n
end
o<<c
}
puts((i<16)?s:o)

এটিতে কোনও রেজেক্সস নেই । এটি একই সাথে ARGV [0] ইনপুটগুলিতে অক্ষরগুলি পরিচালনা করে এবং আমাদের বাম-কলাম বার্তাটি তৈরি করতে অক্ষরগুলি সহ একটি স্ট্রিং আমাদের ভাঙতে হবে। মূলত যে অক্ষরগুলির একটি নতুন লাইন থাকা দরকার তার পরে ফাঁকা স্থানগুলিতে যাচ্ছিল তবে দেখা গেছে যে রেখার বিরতিটি সন্নিবেশ করানোর জন্য সূচীগুলি হার্ডকোড করা কিছুটা ছোট ছিল।

সব কিছু বলা হয়ে গেলে এবং তা শেষ হয়ে যায়, এটি দেখার জন্য যে iসূচিটি প্রতিটি অক্ষরের জন্য ব্রেকিংয়ের প্রয়োজন হয়েছিল তার জন্য যথেষ্ট সময় বাড়িয়েছে। যদি তা না হয় তবে আমরা কেবল মূল স্ট্রিংটি মুদ্রণ করব। যদি এটি থাকে তবে আমরা তাদের ফর্ম্যাট করি।

n-[i]!=nঅক্ষরগুলি সংরক্ষণ করার জন্য একটি ঝরঝরে কৌশল ছিল যখন বর্তমান সূচকটি অতিরিক্ত লাইন ব্রেকের প্রয়োজন ছিল কিনা তার তুলনায় (তুলনায় n.include? i)) মাল্টলাইন ব্লক হওয়া সত্ত্বেও {}s ব্যবহার করে কিছু অক্ষর সংরক্ষণ করেছে do/endএবং কোনটি আউটপুট নির্ধারণ করবে তা নির্ধারণের সময় অক্ষরগুলি সংরক্ষণ করার জন্য চূড়ান্ত পুস্তকে একটি বার্ষিক শর্ত ব্যবহার করেছে।

সংক্ষিপ্ততম নয়, তবে আমি ভেবেছিলাম নিয়মিত প্রকাশ ছাড়াই এটি করা ঝরঝরে হবে।


7

পার্ল, 184 বাইট

পার্লের জন্য দর্শনীয় স্কোর নয়, তবে এখানে একটি সহজ রেগেক্স সমাধান is

$_=<>;s/^(D.*) (I.*) (E.*) (I.*) (N.*) (A.*) (G.*) (R.*) (E.*) (A.*) (S.*) (E.*) (F.*) (I.*) (R.*) E/$1\n$2\n$3\n\n$4\n$5\n\n$6\n\n$7\n$8\n$9\n$10\n$11\n$12\n\n$13\n$14\n$15\nE/;print;

3
নিশ্চয় কোডে রেজেেক্স তৈরি করা এবং একটি টন সংরক্ষণ করা সম্ভব?
পিটার টেলর

@ পিটারটেলর অবশ্যই, তবে এখনই তা করার জন্য আমার কাছে সময় বা পার্ল জ্ঞান নেই have আমার আজ পরে দেখা উচিত।
মার্টিন ইন্ডার

তবুও এটি আমার পিআরএল উত্তরকে মারধর করে, যা আমি এখন পোস্ট করাতে বিরক্ত করব না: পি
তাল

4 টি অক্ষর সংরক্ষণ করুন: print($_)== print। পঠনযোগ্যতার জন্য +1 পয়েন্ট: এটি কী চলছে তা দেখতে খুব সহজেই সহজ যা অন্যান্য সমাধানগুলির ক্ষেত্রে ঠিক তেমনটি নয়।
ওলে টেঞ্জ

পার্ল এটিকে সহজ বলে বিবেচনা করা হয়?
লিংকন বার্গসন

6

জাভাস্ক্রিপ্ট 116

এম-বেটনার এর ধারণার জাভাস্ক্রিপ্ট বাস্তবায়ন

console.log((RegExp('^('+[...'DIE IN A GREASE FIRE$'].join('.*)(')+')').exec(z=prompt())||[,z]).slice(1).join('\n'))

পরীক্ষার স্নিপেট

z="Dear Boss, how are things? It has come to my attention that I received all the blame for the mishap last Friday. Not just the majority of it. Every last bit of it. Is it wrong for me to think that the rest of the team were at least in part responsible? After all, all six of us were involved from the get-go. Not that I think I should stand without blame. Not at all. All I'm saying is this: I do my best. I try hard. I improve constantly. And I am constantly taking responsibility. Generally speaking, I am very okay with taking full responsibility for my actions. But after this spring, it seems I get more than I deserve. Remember the Flakenhauser contract? Everything went down just about as smooth as one could have hoped. Or so it seemed at first. It was just at the very last minute that things fell apart. All of the team agreed that it was more akin to a freak accident than sloppy planning or mismanaged resources. Still, I - alone - took blame for it. Even though I said nothing then, my tolerance level for taking the blame took a serious dent then. From that point on, I have felt it necessary to always try twice as hard, just to escape scrutiny. And still, here we are again. In spite of all my accomplishments. Right where we always seem to end up these days. Every single project. It's becoming unbearable.";

T1.textContent = (RegExp('^('+[...'DIE IN A GREASE FIRE$'].join('.*)(')+')').exec(z)|| [,z]).slice(1).join('\n')

z='From that FIFA point on'
T2.textContent = (RegExp('^('+[...'DIE IN A GREASE FIRE$'].join('.*)(')+')').exec(z)|| [,z]).slice(1).join('\n')
pre { border: 1px solid black }
T1<pre id=T1></pre>
T2 (the FIFA test)<pre id=T2></pre>



এটি FIFAপরীক্ষায় ব্যর্থ হয় (ওপি মন্তব্যসমূহ)
Mwr247

@ এমডব্লিউ 247 বুঝতে অসুবিধা: আপনি কোন ফিফা পরীক্ষার চেষ্টা করেছিলেন?
edc65

নিম্নলিখিত সম্পাদনা পরীক্ষা স্ট্রিং চেষ্টা করুন: From that FIFA point on। এটি এর FAআগে এবং স্পেসের আগে একটি নতুন রেখা রাখে FI
Mwr247

@ Mwr247 আমার জন্য নয় ফায়ারফক্সের সাথে পরীক্ষিত, আমি ঠিক একই লাইন পেয়েছি, এতে কোনও নতুন লাইন নেই
edc65

4

পাইথন 3 ( 166 138)

Golfed:

s='';o=input()
for n in o.split():s+=[n,'\n'+n.title()][n[0]==("DIEINAGREASEFIRE"*len(o))[s.count('\n')]]+' '
print([o,s][s.count('\n')==16])

Ungolfed পর:

format_s = ''
unformat_s = input()
for n in unformat_s.split():
    format_s += [n, '\n' + n.title()][n[0] == ("DIEINAGREASEFIRE"*len(unformat_s))[format_s.count('\n')]] + ' '
print([unformat_s, format_s][format_s.count('\n') == 16])

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

সম্পাদনা করুন: countবিল্টিনের সাথে লাম্বদা ভেরিয়েবল এবং সংক্ষিপ্ত বিভক্ত বিবৃতিটি প্রতিস্থাপন করুন ।


1

পাইথন 3 (165)

def c(m,h,l=[]):
 if h:s=m.rindex(h[0]);l=[m[s:]]+l;return c(m[:s],h[1:],l)
 return[m]+l
i=input()
try:print('\n'.join(c(i,"ERIF ESAERG A NI EID")))
except:print(i)

Ungolfed

def headings_remaining(headings): return len(headings) > 0
def head(s): return s[0]
def tail(s): return s[1:]
def prepend(l,e): l.insert(0, e)
def reverse(s): return s[::-1]

def chunk(message,headings,output_list=[]):
    if headings_remaining(headings):
        split_index = message.rindex(head(headings))
        message_init = message[:split_index]
        message_last = message[split_index:]

        prepend(output_list, message_last)
        return chunk(message_init, tail(headings), output_list)
    else:
        prepend(output_list, message)
        return output_list

input_message=input()
try:
    headings=reverse("DIE IN A GREASE FIRE")
    print('\n'.join(chunk(input_message,headings)))
except ValueError: # Couldn't keep splitting chunks because didn't find heading
    print(input_message)

ব্যাখ্যা

chunk বারবার সর্বশেষ শিরোনামযুক্ত বার্তাটির শেষে বিভাজন ঘটে এবং এটিকে একটি তালিকায় যুক্ত করে দেয়।

ক্যাভেট: কোনও কারণে আপনার চিঠিতে প্রস্তাবিত দুটি শিরোনামের মধ্যে কোনও ফাঁকা স্থান না থাকলে এটি কাজ করবে না, তবে এটি আপনার বসকে একটি চিঠিতে অসম্ভব বলে মনে হচ্ছে।


1

রুবি 115

n,a,c,i=[4,6,7,13],gets,'',0;a.chars{|x|x=='DIEINAGREASEFIRE'[i]?(i+=1;c+="\n"if n-[i]!=n;c+="\n#{x}"):c+=x};puts c

রুবি 95

a,c,i=gets,"",0;a.chars{|x|x=="DIEINAGREASEFIRE"[i]?(i+=1;c+="\n#{x}"):(c+=x)};puts c

1

জে - 110 103 বাইট

কেন স্ট্রিংগুলি পরিচালনা করার জন্য জেতে ভাল ফাংশন নেই, তবে কেবল অ্যারে ফাংশন রয়েছে? আমি যদি কিছু স্মার্ট বুঝতে পারি তবে আমি এটি সংশোধন করব।

সম্পাদনা করুন: সংক্ষিপ্ত এবং স্থির আউটপুট (এটির আগে অতিরিক্ত স্পেস ছিল) এবং পরীক্ষা করা। আমি ব্যাখ্যাটিও উন্নত করেছি।

f=:[:>,&.>/@('IEIINAAGGREASEFFIRE'&t=:(}.@[t{.@[(}:@],(((0{I.@E.)({.;LF;}.)])>@{:))])`]@.(0=#@[))@< ::]

ব্যাখ্যা:

আমি যত ফাংশন ব্যবহার বোঝাতে করব [<left argument>] <function name> <right argument>, যেমন f <text>। আমি প্রতিটি বিবরণও ব্যাখ্যা করব না কারণ ফাংশনটি বেশ দীর্ঘ।

@ বাম ফাংশনে ডান ফাংশন প্রয়োগ করে, যেমন। f@g x == f(g(x))

t=:(}.@[t{.@[(}:@],(((0{I.@E.)({.;LF;}.)])>@{:))])']@.(0=#@[)<delimiters> t <boxed string>ক্রম অনুসারে একটি পুনরাবৃত্ত ফাংশন যা প্রতিটি ডিলিমিটারের সাথে স্ট্রিং বিভক্ত হয়। কিছু ডিলিমিটার না পাওয়া গেলে ব্যর্থ হয়।

(((0{I.@E.)({.;LF;}.)])>@{:) ডিলিমিটারের বাম দিক থেকে স্ট্রিং বিভক্ত করে তাদের মধ্যে একটি লাইনফিড যুক্ত করে।

>@{: একটি তালিকা থেকে শেষ স্ট্রিং পায় (একটি যা এখনও বিভক্ত হয়নি)

0{I.@E. সূচকটি বিভক্ত হয়ে যায়, সীমানারটির অস্তিত্ব না থাকলে ব্যর্থ হয়।

{.;LF;}. বিভক্তের বাম দিক, লাইনফিড এবং বিভক্তির ডান দিককে সংযুক্ত করে

}:@], পূর্ববর্তী বিভক্তির ফলাফল এবং শেষ ফাংশনের ফলাফলকে সম্মতি জানায় (শেষ অর্থ: সন্ধান করুন)

']@.(0=#@[)কোনও ডিলিমিটার আছে কিনা তা পরীক্ষা করে এবং উপরে বর্ণিত ফাংশনটিকে (5 লাইন) কল করে। অন্যথায় ফিরে আসে।

'IEIINAAGGREASEFFIRE'&tস্ট্রিংয়ের বাম আর্গুমেন্ট সেট করে

[:>,&.>/@ বিভাজনের ফলাফলের সাথে যোগ দেয়

::] যদি কোনও কিছু ব্যর্থ হয় (আমি বিভক্ত সূচকটির জন্য দুর্বল পয়েন্টটি অনুসন্ধান করেছি), মূল স্ট্রিংটি ফিরিয়ে দিন।

উদাহরণ (খুব দীর্ঘ?):

   f 'Dear Boss, how are things? It has come to my attention that I received all the blame for the mishap last Friday. Not just the majority of it. Every last bit of it. Is it wrong for me to think that the rest of the team were at least in part responsible? After all, all six of us were involved from the get-go. Not that I think I should stand without blame. Not at all. All I''m saying is this: I do my best. I try hard. I improve constantly. And I am constantly taking responsibility. Generally speaking, I am very okay with taking full responsibility for my actions. But after this spring, it seems I get more than I deserve. Remember the Flakenhauser contract? Everything went down just about as smooth as one could have hoped. Or so it seemed at first. It was just at the very last minute that things fell apart. All of the team agreed that it was more akin to a freak accident than sloppy planning or mismanaged resources. Still, I - alone - took blame for it. Even though I said nothing then, my tolerance lev...
Dear Boss, how are things? 
It has come to my attention that I received all the blame for the mishap last Friday. Not just the majority of it. 
Every last bit of it. 

Is it wrong for me to think that the rest of the team were at least in part responsible? After all, all six of us were involved from the get-go. 
Not that I think I should stand without blame. Not at all. 

All I'm saying is this: I do my best. I try hard. I improve constantly. And I am constantly taking responsibility. 

Generally speaking, I am very okay with taking full responsibility for my actions. But after this spring, it seems I get more than I deserve. 
Remember the Flakenhauser contract? 
Everything went down just about as smooth as one could have hoped. Or so it seemed at first. It was just at the very last minute that things fell apart. 
All of the team agreed that it was more akin to a freak accident than sloppy planning or mismanaged resources. 
Still, I - alone - took blame for it. 
Even though I said nothing then, my tolerance level for taking the blame took a serious dent then. 

From that point on, 
I have felt it necessary to always try twice as hard, just to escape scrutiny. And still, here we are again. In spite of all my accomplishments. 
Right where we always seem to end up these days. 
Every single project. It's becoming unbearable.
   f 'Die in a grease fire. It''s fun. Every time.'
Die in a grease fire. It's fun. Every time.
   f 'hai'
hai

1

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

alert(prompt(x=[...'DIEI1NA1G1REASEF1IRE',i=0]).replace(/\b./g,a=>i<20&&a.match(x[i])?(+x[++i]?i++&&`

`:`
`)+a:a))

আমি replaceস্ট্রিংয়ের মধ্য দিয়ে পা রেখেছিলাম , এমন একটি ম্যাচ দিয়ে /\b./gযাতে কেবল এমন কোনও অক্ষর খুঁজে পাওয়া যায় যা হয় কোনও স্থান অনুসরণ করেছে বা স্ট্রিংটি শুরু করেছিল। তারপরে আমি প্রতিটি চরিত্রটি পরীক্ষা করেছিলাম এটি অনুসন্ধান করতে থাকা অ্যারেতে বর্তমান সূচকের সাথে মেলে কিনা, এবং এটির আগে একটি নতুন লাইন যুক্ত হয়েছে, এবং বর্ধিত হয়েছে i

সম্পাদনা: শব্দের মধ্যে নতুন লাইন তৈরির প্রয়োজন মিস করেছেন। আমি এখন এটি করেছি, যা এটি 115 এ পৌঁছেছে।


1

পিএইচপি, 328 বাইট

"এনমেসেজ" কে কাঁচা পাঠ্যযুক্ত 'জি' নামে একটি ফাইল দেওয়া হয়েছে

<?php
$a=implode(file("G"));$b=str_split('DIEINAGREASEFIRE');foreach(array_unique($b) as $c){foreach(str_split($a) as $h=>$d){if($c==$d)$l[$c][]=$h;}}$e=-1;$n=$a;foreach($b as $f=>$c){foreach($l as $j=>$m){if($c==$j){foreach($m as $k=>$h){if($h>$e){$n=substr($n,0,$h)."\n".$c.substr($a,$h+1);$e=$h+2;break 2;}}}}}echo nl2br($n);

ব্যাখ্যা (ng অবরুদ্ধ এবং & মন্তব্য কোড):

<?php
$string=implode(file("G"));          // raw text to deal with
$msg=str_split('DIEINAGREASEFIRE');  // hidden message (make it an array)

 // 2D array : [letters of the message][corresponding positions in txt]
foreach(array_unique($msg) as $letter) {
    foreach (str_split($string) as $pos=>$let) {
        if ($letter==$let) $l[$letter][]=$pos; //1 array per seeked letter with its positions in the string
    }
}

$currentPos=-1;
$newString=$string;
foreach ($msg as $key=>$letter) { // deal with each letter of the desired message to pass
    foreach($l as $cap=>$arrPos) {// search in letters list with their positions
        if($letter==$cap) {       // array of the current parsed letter of the message
            foreach($arrPos as $kk=>$pos) { // see every position
                if ($pos>$currentPos) {     // ok, use the letter at that position
                    $newString=substr($newString,0,$pos)."\n".$letter.substr($string,$pos+1); // add line break
                    $currentPos=$pos+2; // take new characters into account (\n)
                    break 2;            // parse next letter of the message
                }
            }
        }
    }
}                    /* (note that I could have added some other (random) line breaks management, so that
                      * the message is not TOO obvious... !*/
echo nl2br($newString);

1

পিএইচপি, 136 বাইট

for($f=" ".join(file(F));$c=DIEINAGREASEFIRE[$i++];){while(($p=strpos($f,$c,$p))&&$f[$p-1]>" ");$p?$f[$p-1]="\n":$i=20;}echo$i<20?$f:"";

যদি পুরো অপমান করা যায়; শীর্ষস্থানীয় স্থান বা লাইনব্রেক সহ পরিবর্তিত স্ট্রিং মুদ্রণ করে; খালি আউটপুট না হলে। সাথে চালাও -r

ভাঙ্গন

for($f=" ".join(file(F));       // read input from file "F"
    $c=DIEINAGREASEFIRE[$i++];) // loop through insult characters:
{
    while(($p=strpos($f,$c,$p))     // find next position of $c
        &&$f[$p-1]>" ");            // ... preceded by a space
    $p?$f[$p-1]="\n"                // if found, replace the space with a newline
    :$i=20;                         // else break the loop
}
echo$i<20?$f                // if modified text has the full insult, print it
    :"";                    // else print nothing

0

পাইথন - 190 বাইট

l,r="IExINxAxGREASExFIRE","\n";k=p=raw_input();y=i=0
for c in l:
    if c!="x":
        h=len(p);x=p[y:h].find(c)
        if x==-1:i+=1
        p=p[0:x+y-1]+r+p[x+y:h];y=x+y;r="\n"
    else:r=r+r
if i!=0:p=k

Ungolfed

এটি আমার প্রথম গল্ফ প্রচেষ্টা :) কিছু দুর্দান্ত কোডিং কৌশল শিখতে চেয়েছি, নির্বিশেষে, আমি কেবলমাত্র উপযুক্ত অক্ষরগুলি খুঁজে পেতে এবং আউটপুট ফর্ম্যাট করার জন্য কিছু স্ট্রিং স্প্লিকিংয়ের উপর নজর রেখেছি।

চলক -

lr = l কে বর্ণিত বরাদ্দ দেওয়া হয় আমরা আমাদের নতুন বিন্যাসিত অনুচ্ছেদ তৈরি করতে আমাদের গাইড হিসাবে ব্যবহার করব। নতুন আউটপুট ফাঁকানোর জন্য r আমাদের জন্য নতুন লাইন চরিত্রটি বরাদ্দ করা হয়েছে।

k, p = ইনপুট অনুচ্ছেদ। স্ক্রিপ্টটি কার্যকর করার সময় এটি পুনরায় বরাদ্দ না হওয়ায় কে আসলটিতে ফিরে যেতে ব্যবহৃত হয়। আমি ব্যবধানের উদ্দেশ্যে কখন ডাবল নতুন লাইন যুক্ত করব তা জানতে এক্স এর বিরুদ্ধে পরীক্ষা করে দেখি।

y, i = y প্রকারের একটি "কার্সার", কোনও চরিত্রের সন্ধান পাওয়া শেষ অবস্থানের উপর নজর রাখে তাই আমরা বিচ্ছেদের উদ্দেশ্যে অনুচ্ছেদে সঠিকভাবে খুঁজে পাই, আমি স্যানিটি চেক, যদি আমরা আমাদের সমস্ত অক্ষর না আঘাত করি তবে অনুচ্ছেদে (পি ভেরিয়েবল) কে কে ভেরিয়েবলের মাধ্যমে এটির মূল ইনপুটটিতে রূপান্তর করুন।

h = ইনপুট দৈর্ঘ্য, যা আমরা টুকরো টুকরো করে ব্যবহার করি।

x = সি দ্বারা প্রতিনিধিত্ব করা বর্তমান চরিত্রের অবস্থান, স্প্লাইকিংয়ের জন্যও ব্যবহৃত হয়।

সি = পুনরুক্তি করতে এবং এর জন্য অনুসন্ধান করতে অক্ষরে।

নীচের কোডটি পাঠ্যতার জন্য আসল কোড থেকে যা ঘটছে তা পুনরুদ্ধার করা এবং ভাঙা হয়েছে:

letters,return="IExINxAxGREASExFIRE","\n"
input1=input2=raw_input()
lastpos=sanity=0

for char in letters:
    if char != "x":
        inputlength=len(input1)
        charposition=input1[lastpos:inputlength].find(char)
        if charposition==-1:
            sanity+=1
        input1=input1[0:position+lastpos-1]+return+input1[position+lastpos:inputlength]
        lastpos=position+lastpos
        return="\n"
    else:return=return+return
if sanity!=0:
    input1=input2

আমি আপনার মতামত কৃতজ্ঞ হবে! আমি শিখতে খুঁজছি।


আমি এটিতে কিছু কৌশল সহ একটি সম্পাদনার প্রস্তাব দিয়েছি। তাদের মধ্যে কারও ব্যাখ্যা দরকার কিনা তা কেবল আমাকে জিজ্ঞাসা করুন। মনে রাখবেন এটি আরও গল্ফ করা যেতে পারে, তবে আমি এটি আপনার কাছে ছেড়ে দেব। :)
seequ

@ রেয়ার ধন্যবাদ! আমি যদি আপনার সম্পাদনায় প্রস্তাবিত "i = + x <0" লাইনটি সত্যিই পছন্দ করি তবে আমার "বিপরীতে যদি x == - 1: i + = 1" লাইন থাকে। আমি এটি সঠিকভাবে পড়ছি তা নিশ্চিত করার জন্য, আমি গত রাতের বিষয়ে যে তিনটি জিনিস পড়ছিলাম, ঠিক এটি? এটি মূলত পড়েছে, "যদি x 0 এর চেয়ে কম হয় (-1 ফিরে আসে যখন চরটি খুঁজে পাবে না): আমি x যুক্ত করে" সঠিক? সুতরাং এটি এখনও একটি মান -1 বা এর চেয়ে কম মূল্য দিয়ে স্যানিটি চেক সন্তুষ্ট করে, তাই না? আপনি যে সঠিকটি পড়ছেন তা নিশ্চিত করতে চান, কারণ এটি একটি দুর্দান্ত স্পেস সেভার!
0xhughes

আসলে এটি যোগ x<0করে i। পাইথন সত্য ইন 1 হিসাবে একই এবং মিথ্যা হিসাবে 0. সুতরাং যদি এক্স -1, এটা 1 যোগ করে একই এবং অন্যথায় 0. i+=হিসাবে একইi=i+
seequ

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