আমার বাস্তব বন্ধুদের জন্য কোড গল্ফ


35

... এবং আমার কোড বন্ধুদের জন্য বাস্তব গল্ফ।

এটি এক বছরের পুরানো এক্সকেসিডি কমিকের উপর ভিত্তি করে একটি চ্যালেঞ্জ যা বেশিরভাগ টোস্ট (কমিকের প্রথম প্যারোডি) একটি স্বতন্ত্র প্যাটার্ন অনুসরণ করে গঠিত তবে কিছুটা ভিন্নতা রয়েছে।

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

উদাহরণ

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

Input: Champagne for my real friends
Output: and real pain for my sham friends!

Input: Pseudopods for my real friends
Output: and real pods for my pseudo-friends!

Input: Petticoats for my real friends
Output: and real coats for my petty friends.

Input: Loosestrife for my real friends
Output: and real strife for my loose friends!

Input: Ladybugs for my real friends
Output: and real bugs for my lady friends!

Input: Single-payer for my real friends
Output: and RealPlayer for my single friends.

Input: Tumbleweeds for my real friends
Output: and real weed for my Tumblr friends!

Input: Fauxhawks for my real friends
Output: and real hawks for my faux friends!

Input: Platonic solids for my real friends
Output: and real solids for my platonic friends!

আমি মনে করি আপনার টাইপো আছে Single-payer(পরিবর্তে Single-player)।
কেভিন ক্রুইজসেন

4
কেভিন: না, আসলেই তাই Single-payer
ivzem

@ কেভিন ক্রুজসেন - এটি টাইপো হতে পারে, তবে যদি এটি র্যান্ডাল @ এক্সকেসিডি'র হয় তবে আইভজেম নয়। এটি সম্পর্কে এক্সকেসিডি ব্যাখ্যা নিয়ে আলোচনা রয়েছে । এছাড়াও, আইভেজেম - এইচএনকিউ তালিকায় শিরোনামটি দেখার সাথে সাথেই আমি নিশ্চিত যে আপনি সেই কমিকটি উল্লেখ করছেন। সাবাশ!
ববসন

উত্তর:


18

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

পূর্ববর্তী সংস্করণটি "প্লাটোনিক সলিউডস" এ স্থানটি সঠিকভাবে পরিচালনা করতে পারেনি, এটি একটি কাজ করে এবং আরও খাটো :)

ew
rw
eds
ed
(\w+) ?([^oatr ]\w{3}.+)real
and real $2$1
C
S
gne
in
o 
o-
ti
ty
T`TL`Tl
p\w+y.+
$&.
s$
s!
real -p
RealPl

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

এটি প্রতিস্থাপনের ধারাবাহিকের মাধ্যমে আউটপুটটিকে ইনপুট রূপান্তরিত করে।

সবচেয়ে আকর্ষণীয় অংশটি হ'ল এই প্রতিস্থাপন (এক ধরণের রিজেক্স গল্ফ):

(\w+) ?([^oatr ]\w{3}.+)real
and real $2$1

প্রথম শব্দটি বিভক্ত করে, এর টুকরোটি সঠিক জায়গায় রেখে, অতিরিক্ত স্থান সরিয়ে, এবং আউটপুটটির কাঠামো তৈরি করে, যা প্রায় সমস্ত কাজ করে। "টাম্বলওয়েডস" পরীক্ষার ক্ষেত্রে সঠিকভাবে কাজ করতে এটি পূর্ববর্তী প্রতিস্থাপন "এড" -> "এড" এর উপর নির্ভর করে।

বাকিগুলি বেশিরভাগ বিকল্পগুলির দ্বারা রচিত যা বিশেষ ক্ষেত্রে মোকাবেলা করে। অন্যান্য আকর্ষণীয় অংশগুলি হ'ল:

T`TL`Tl

এটি "টি" (টাম্বলারের জন্য) ব্যতীত সমস্ত কিছুকে ছোট হাতের দিকে পরিণত করে।

p\w+y.+
$&.
s$
s!

এটি একটি "।" "y" এর সাথে একটি শব্দ যুক্ত প্রতিটি বাক্য শেষে "পি" ("ক্ষুদ্র" এবং অনুশীলনে "দাতা") পরে কিছু অক্ষর থাকে। তারপরে একটি "!" একটি "গুলি" (সমস্ত অন্যান্য) দিয়ে শেষ হওয়া সমস্ত বাক্য শেষে।


এটি পরে একটি অতিরিক্ত স্থান মুদ্রণ করে platonic। প্রস্তাবিত ফিক্স: টিআইও (+5 বাইট)
গণিত জাঙ্কি

1
@ মাথ_জুনকি আপনাকে ধন্যবাদ, আমি একটি নতুন সংস্করণ আপলোড করেছি যা স্পেসগুলির সাথে সমস্যাটি সংশোধন করে এবং আরও ছোট করে দেয় :)
লিও

10

পাইথন 2, 291 269 293 255 247 বাইট

Erik the Outgolfer22 বাইট সংরক্ষণ করার জন্য ধন্যবাদ !

.পরিবর্তে শেষ হওয়া কিছু আউটপুটগুলির জন্য অ্যাকাউন্টে 24 টি বাইট!

lambda x:'and '+['real '+'pain%ssham ,pods%spseudo-,coats%spetty ,strife%sloose ,bugs%slady ,weed%sTumblr ,hawks%sfaux ,solids%splatonic '.split(',')['noarsekc'.find(x[7])],'RealPlayer%ssingle ']['-'in x]%' for my '+x[-7:]+'!.'['-'in x or'tt'in x]

জিনিসগুলি বন্ধ করার সহজ সমাধান। মন্তব্যগুলিতে প্রস্তাবিত হিসাবে ইনপুটটির অষ্টম বর্ণটি পরীক্ষা করে এবং অভিধানে একটি অ্যারেতে সংশ্লিষ্ট আউটপুটটি সন্ধান করে ।

অনলাইনে চেষ্টা করে দেখুন!


আপনি হয়ত ভুলে গেছেন Single-payer for my real friends...
ম্যাথিউ রডিক

@ ম্যাথিউরডিক নং, এটি বেশ ইচ্ছাকৃত। RealPlayerএকটি বিশেষ কেস
গণিত জাঙ্কি

ওফস, দুঃখিত, খুব দ্রুত পড়ুন।
ম্যাথিউ রডিক

6

এসওজিএল , 143 বাইট

_╔x⅜²‘,8WWAa"⅞+1Tλ²⅞ƨ◄…χŗbdŗu8ņ∑Ι⅓I‼hzΔμō┘═q‼xΘ▼²ηpG⅔─┌¡↕+wd÷[≈┐α┌ļ○(‚δΦEΤα{‚φ▒k׀:╚s&⅛↑»‘ |Θwθ1w"ρ└⁸‘S∆∫⁴‘a1>*+oo"¤Ε○Φr‘o2w _@ŗo"æn‘o"χ}49⁶‘aWT

এটি এই স্ট্রিংটিকে মূল অংশ হিসাবে ব্যবহার করে। "|" বিভাজন এবং "_" স্থান স্থানধারক তাই বিভাজন সঠিকভাবে কাজ করবে।

RealPlayer single_|weed Tumblr_|strife loose_|bugs lady_|pods pseudo-|pain sham_|solids platonic_|coats petty_|hawks faux_

ইনপুট উদাহরণ: "আমার সত্যিকারের বন্ধুদের জন্য প্লাটোনিক সলিউডস" ব্যাখ্যা:

..‘,8WWAa"..‘ |Θwθ1w"..‘S∆∫⁴‘a1>*+oo"..‘o2w _@ŗo"..‘o"..‘aWT  strings shortened
..‘                                                           push "personcake" (the indexing string) ["personcake"]
    8W                                                        get the 8-th char                       
   ,                                                           from the input                         ["personcake", "c"]
      W                                                       get its in "personcake" (1-indexed)     [7]
       Aa                                                     save on variable A                      [7]
         "..‘                                                 push the long string                    [7, "RealPlayer...faux_"]
              |Θ                                              split on "|"                            [7, ["RealPlayer single_", ..., "hawks faux_"]]
                w                                             get the Ath item of the array           [["..."], "solids platonic_"]
                 θ                                            split on spaces                         [["..."], ["solids", "platonic_"]]
                  1w                                          get the 1st item                        [["..."], ["solids", "platonic_"], "solids"]
                    "..‘                                      push "and "                             [["..."], ["solids", "platonic_"], "solids", "and "]
                        S∆∫⁴‘                                 push "real "                            [["..."], ["solids", "platonic_"], "solids", "and ", "real "]
                             a1>*                             multiply by A(index) > 1                [["..."], ["solids", "platonic_"], "solids", "and ", "real "]
                                 +                            join together                           [["..."], ["solids", "platonic_"], "solids", "and real "]
                                  o                           output                                  [["..."], ["solids", "platonic_"], "solids"]
                                   o                          output (the 1st item of the array)      [["..."], ["solids", "platonic_"]]
                                    "..‘o                     output " for my "                       [["..."], ["solids", "platonic_"]]
                                         2w                   get the 2nd item of the array           [["..."], ["solids", "platonic_"], "platonic_"]
                                            _@ŗ               replace "_" with " "                    [["..."], ["solids", "platonic_"], "platonic "]
                                               o              output that                             [["..."], ["solids", "platonic_"]]
                                                "..‘o         output "friends"                        [["..."], ["solids", "platonic_"]]
                                                     "..‘     push ".!!!!!!.!"                        [["..."], ["solids", "platonic_"], ".!!!!!!.!"]
                                                         aW   get the Ath item                        [["..."], ["solids", "platonic_"], "!"]
                                                           T  output, disabling implicit output       [["..."], ["solids", "platonic_"]]

6

পাইথন 3 , 788 , 403 , 359 396 বাইট

সর্বশেষ সংস্করণ

এটি এখন আমার পঞ্চম প্রয়াস। আমি আমার আসল প্রোগ্রামটির অর্ধেক ম্যানেজ করেছি। এটিতে এখন "-" নিখোঁজ রয়েছে এবং আমি বিশ্বাস করি এটি একটি সম্পূর্ণ সমাধান। তবুও আমি বিপুল দিকে সন্দেহ করি; কিন্তু লক্ষ্য থেকে অনেক কাছাকাছি আমি ছিল অনেক সাহায্যের । সমস্ত সহায়ক নির্দেশিকা জন্য ধন্যবাদ।

s=input()
x=0
l= "Ch,pain,Sham,Ps,pods,psuedo-,Pe,coats,petty,Lo,strife,loose,La,bugs,lady,Si,RealPlayer,single,Tu,weed,Tumblr,Fa,hawks,faux,Pl,solids,platonic".split(",")
a,b,c,d,e,f,g,h = " and real","for my","friends",".!","print(a,l[p+1],b,l[p+2]",",c+d[0])","+c+d[1])",",c+d[1])"
for p in range(0,27,3):
 x+=1
 if s[:2] == l[p]:
  if x == 2: eval(e+g)
  else: eval(e+f if x in(3,6) else e+h)

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


আসল পোস্টিং

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

phraseList= [   ("Champagne","pain","Sham"), 
                ("Psudeopods","pods","psuedo-"), 
                ("Petticoats","coats","petty"),
                ("Loosestrife","strife","loose"),
                ("Ladybugs","bugs","lady"),
                ("Single-payer","coats","petty"),
                ("Petticoats","RealPlayer","single"),
                ("Tumbleweeds","weed","Tumblr"),
                ("Fauxhawks","hawks","faux"),
                ("Platonic solids","real solids","platonic")
                ]

for phrase in phraseList:
    print("Input: ",phrase[0], "for my real friends.")
    if "-" in phrase[2]:
        print("Output: and real", phrase[1], "for my", phrase[2]+ "friends!")
    else:
        print("Output: and real", phrase[1], "for my", phrase[2], "friends!")

3
সহায়তা কেন্দ্র থেকে : চ্যালেঞ্জগুলির সমস্ত সমাধান হওয়া উচিত: [...] ব্যবহারে বিজয়ী মানদণ্ডের জন্য একটি গুরুতর প্রতিযোগী হোন। উদাহরণস্বরূপ, একটি কোড গল্ফ প্রতিযোগিতায় একটি এন্ট্রি গল্ফ করা প্রয়োজন, এবং একটি গতি প্রতিযোগিতায় প্রবেশের জন্য দ্রুত হওয়ার জন্য কিছু প্রচেষ্টা করা উচিত।
এরিক আউটগল্ফার

1
হ্যালো এবং সাইটে আপনাকে স্বাগতম। এটি একটি কোড-গল্ফ প্রশ্ন যা আপনাকে আপনার কোডের দৈর্ঘ্য হ্রাস করার চেষ্টা করতে হবে। আপনার অপ্রয়োজনীয় সাদা স্থান সরিয়ে নেওয়া উচিত এবং 1 অক্ষর দীর্ঘ হতে চলকের পুনরায় নামকরণ করা উচিত।
গম উইজার্ড

আপনি পুরো বাক্যাংশটি একটি লাইনে রেখে দিতে পারেন, একটি স্পেসে ইন্ডেনশন হ্রাস করতে পারেন, প্রিন্টগুলি এক লাইনে অন্য একসাথে রেখে দিতে পারেন, এবং প্রিন্টগুলিতে সাদা স্থানটি প্রয়োজনীয় নয় necessary যাইহোক, আমি জানি না আপনি যদি কেবল সমস্ত আউটপুট মুদ্রণের অনুমতি পেয়েছেন;)
মেগা ম্যান

1
হ্যালো! দেখে মনে হচ্ছে এটি আপনার প্রথম কোড গল্ফ উত্তর। দুর্ভাগ্যক্রমে, আপনি মনে করছেন যে প্রশ্নটি ভুল হয়েছে, বিশেষত নীচে "উদাহরণ" টেবিলটি, যা কেবল প্রতিটি ইনপুটকে কীভাবে সম্পর্কিত আউটপুটে মানচিত্র করা উচিত তা দেখায়। বর্তমানে, আপনার প্রোগ্রামটি কেবল সেই টেবিলটি প্রিন্ট করে __ আরও ভাল পাঠযোগ্যতার জন্য আপনার কোডটি একটি কোড ব্লকে স্থাপন করা (এটি নির্বাচন করুন এবং click} ক্লিক করুন) স্ট্যান্ডার্ড অনুশীলন যা এই সাইটটি হিসাবে আপনার পছন্দ এবং বাইট গণনার ভাষা উল্লেখ করতে পারে প্রশ্নোত্তর সাইটের চেয়ে কোনও প্রতিযোগিতার মতোই। গম উইজার্ড ইতিমধ্যে এটি করেছে, তাই আরও ভাল
ivzem

হাই এবং পিপিসি-তে আপনাকে স্বাগতম। স্পেসগুলি সরিয়ে এবং একক বর্ণের ভেরিয়েবল ব্যবহার করে আপনি প্রচুর বাইট হারাতে পারেন। আমার মনে আছে আমি যখন এখানে প্রথম শুরু করেছি অভ্যস্ত হতে কিছুটা সময় নিয়েছিল। আমার ধারণা তুমি আমার মত আপনি পঠনযোগ্য কোড লেখার জন্য অনেক সময় ব্যয় করেন। যেমনটি আমি বলেছি, পিপিসিজি এবং একটি নতুন জগতে আপনাকে স্বাগতম;)
এলপেড্রো

6

রোদা , 299 292 288 259 বাইট

,পরিবর্তে ব্যবহারের জন্য 4 বাইট @fergusq ধন্যবাদ সংরক্ষণ করেছে.. মধ্যে pushবিবৃতি

বাইটস আমাকে নিরাপদে রাখার জন্য @ ফার্গুসাক ধন্যবাদ জানায় indexOf

h a{r=indexOf(a[7:8],"noarspekc")A="pain>pods>coats>strife>Player>bugs>weed>hawks>solids>sham >pseudo->petty >loose >lady >single >Tumblr >faux >platonic >!>!>.>!>!>.>!>!>!"/">";["and "];["Real"]if[r=4]else["real "];[A[r]," for my ",A[r+9],"friends",A[r+18]]}

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

পাইথনের এত কাছে ... এত কাছে ... তোমার পদক্ষেপ, পাইথন।

ব্যাখ্যা

h a{
  r=indexOf(a[7:8],"noarspekc")  /*Gets the index of the character in this string*/
  /*Variable A contains all the unique words for each test case*/
  A="pain>pods>coats>strife>Player>bugs>weed>hawks>solids>sham >pseudo->petty >loose >lady >single >Tumblr >faux >platonic >!>!>.>!>!>.>!>!>!"/">"
  ["and "]
  ["Real"]if[r=4]else["real "]   /*RealPlayer*/
  [A[r]," for my ",A[r+9],"friends",A[r+18]]   /*Print everything using var A*/
}

আপনি কি শেষ বয়ানটিতে স্ট্রিং ইন্টারপোলেশন ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারেন? সম্পাদনা: প্রকৃতপক্ষে সংক্ষিপ্ততম উপায়টি সম্ভবত একটির পরিবর্তে অনেকগুলি স্ট্রিংটিকে স্ট্রিমের দিকে ঠেলে দেওয়া। প্রতিস্থাপন ..সঙ্গে ,
ফারগুসক

@fergusq টিপটির জন্য ধন্যবাদ!
ক্রিটসি লিথোস

এছাড়াও আপনি শুধু ব্যবহার করতে পারেন r=indexOf(a[7:8],"noarspekc")
ফার্গুসক

@fergusq আহ, আমি জানতাম না যে এরকম বিল্টিন রয়েছে। ধন্যবাদ!
ক্রিটসি লিথোস

5

জাভাস্ক্রিপ্ট (ES6), 230 228 221 216 বাইট

s=>'and '+((n='paonrsekc'.search(s[7]))?'real ':'')+'RealPl740s5 /450p3y /540p5-/pain0s3 /460l4 /340l3 /540T4r /350f3 /860p7 '.split`/`[n].replace(/\d\d?/g,n=>s.substr(n/10+1,n%10)||' for my ')+'friends'+'.!'[+(n>1)]

পরীক্ষা


3

পিএইচপি, 202 220 204 203 বাইট

and real <?=[pods,solids,hawks,strife,RealPlayer,pain,bugs,weed,coats][$q=md5($argv[1].LnI)%9].' for my '.[pseudo,platonic,faux,loose,single,sham,lady,Tumblr,petty][$q].' -'[!$q].friends.'.!'[!$q||$q&3];

3

পার্ল, 173 168 বাইট

নিউলাইন এবং ইন্ডেন্টেশনগুলি সরিয়ে, এটি পার্ল 5 কোডের 173 বাইট হয়ে যায়। নির্লজ্জভাবে লিওর রেটিনা উত্তর থেকে প্রথম রেজিএক্সপক্স চুরি করেছে। (আমার কয়েক অক্ষর দীর্ঘ ছিল)

sub f{
  my($_)=@_;
  s,(\S+[oieyxm ])(\S{4}.+)real,and real $2\l$1,;
  s,gne,in,;
  s,ch,sh,;
  s,ti,ty,;
  s,eds,ed,;
  s,tumble,Tumblr,;
  s,real -p,RealPl,;
  s,o ,o-,;
  s,c ,c,;
  /ng|tt/?"$_.":"$_!"
}

পার্ল 5 সংস্করণ> = 5.14 এর জন্য আরও 5 টি বাইট ইভাল এবং নতুন / আর রেজিএক্সপ্যাক্স প্রতিস্থাপন সংশোধক দিয়ে শেভ করা যায়। 168 বাইট সহ শেষ হচ্ছে:

sub f{my($_)=@_;eval's,(\S+[oieyxm ])(\S{4}.+)real,and real $2\l$1Xgne,inXch,shXti,tyXeds,edXtumble,TumblrXreal -p,RealPlXo ,o-Xc ,c,;/ng|tt/?"$_.":"$_!"'=~s/X/,;s,/gr}

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


2

সি, 367 বাইট

যেমনটি মনে হয়েছিল তত সংক্ষিপ্তটি শেষ হয়নি।

i,j,c;f(char*s){c=s[7]-97;char t[9],u[200];char*r=s;s+=j=c&&c-17?c-10&&c-18?c-2?5:8:3:4;for(i=0;*++s-32;t[i++]=*s);t[c-4?i:i-1]=0;for(i=0;*r++-t[0];)u[i++]=*(r-1);u[i]=32;u[i+1]=0;u[0]+=32;u[c?i:i-1]=c?c-2?c-14?32:45:0:121;printf("and %s%s for my %sfriends%c",c-15?"real ":"RealPlayer",c-15?c-13?t:"pain":"",c-13?c-4?c-17?u:"loose ":"Tumblr ":"sham ",c&&c-15?33:46);}

2

জাভা 7, 585 553 বাইট

import java.util.*;String c(String s){Map m=new HashMap(){{put("Ch","pain");put("Ps","pods");put("Pe","coats");put("Lo","strife");put("La","bugs");put("Si","Player");put("Tu","weed");put("Fa","hawks");put("Pl","solids");put("Ch1","sham ");put("Ps1","pseudo-");put("Pe1","petty ");put("Lo1","loose ");put("La1","lady ");put("Si1","single ");put("Tu1","Tumblr ");put("Fa1","faux ");put("Pl1","platonic ");}};String r=s.substring(0,2);int c=r.charAt(1);return"and "+(c=='i'?"Real":"real ")+m.get(r)+" for my "+m.get(r+1)+"friends"+(c=='i'|c=='e'?'.':'!');}

-32 বাইটস @ জিরকনকে ধন্যবাদ ।

মানচিত্রের চেয়ে আলাদা কিছু ব্যবহার করে অবশ্যই গল্ফ করা যেতে পারে ..

ব্যাখ্যা:

import java.util.*;            // Import required for the Map & HashMap
String c(String s){            // Method with String parameter and String return-type
  Map m=new HashMap(){{        //  The Map
    put("Ch","pain");put("Ps","pods");put("Pe","coats");put("Lo","strife");put("La","bugs");put("Si","Player");put("Tu","weed");put("Fa","hawks");
                               //  Add mapping from first two characters with first word
    put("Ch1","sham ");put("Ps1","pseudo-");put("Pe1","petty ");put("Lo1","loose ");put("La1","lady ");put("Si1","single ");put("Tu1","Tumblr ");put("Fa1","faux ");put("Pl1","platonic ");
                               //  Add mapping from first two characters + "1" with second word (+ space or '-' for edge-case `pseudo-friends`)
  }};                          // End of Map initialization
  String r=s.substring(0,2);   //  Get the first two characters of the input String
  int c=r.charAt(1);           //  Get the second character
  return "and "                //  return "and "
    + (c=='i'?"Real":"real ")  //   + "Real" or "real " for edge-case `RealPlayers`
    + m.get(r)                 //   + first word from Map
    + " for my "               //   + " for my "
    + m.get(r+1)               //   + second word from Map
    + "friends"                //   + "friends"
    + (c=='i'|c=='e' ? '.'     //   + '.' for edge-cases 'Petticoats' and 'Single-player
      : '!');                  //     or '!' for all other cases
}                              // End of method

পরীক্ষার কোড:

এখানে চেষ্টা করুন। (আইডিয়োন ডটকমটি ইদানীং বাগ করা হয়েছে, তাই আমি এখন টিআইও ব্যবহার করছি ..)

import java.util.*;
class M{
  static String c(String s){Map m=new HashMap();m.put("Ch","pain");m.put("Ps","pods");m.put("Pe","coats");m.put("Lo","strife");m.put("La","bugs");m.put("Si","Player");m.put("Tu","weed");m.put("Fa","hawks");m.put("Pl","solids");m.put("Ch1","sham ");m.put("Ps1","pseudo-");m.put("Pe1","petty ");m.put("Lo1","loose ");m.put("La1","lady ");m.put("Si1","single ");m.put("Tu1","Tumblr ");m.put("Fa1","faux ");m.put("Pl1","platonic ");String r=s.substring(0,2);int c=r.charAt(1);return"and "+(c=='i'?"Real":"real ")+m.get(r)+" for my "+m.get(r+1)+"friends"+(c=='i'|c=='e'?'.':'!');}

  public static void main(String[] a){
    System.out.println(c("Champagne for my real friends"));
    System.out.println(c("Pseudopods for my real friends"));
    System.out.println(c("Petticoats for my real friends"));
    System.out.println(c("Loosestrife for my real friends"));
    System.out.println(c("Ladybugs for my real friends"));
    System.out.println(c("Single-player for my real friends"));
    System.out.println(c("Tumbleweeds for my real friends"));
    System.out.println(c("Fauxhawks for my real friends"));
    System.out.println(c("Platonic solids for my real friends"));
  }
}

1
আমি মনে করি আপনি ডাবল-ব্রেস প্রারম্ভিককরণ এবং এর putপরিবর্তে বাইটগুলি সংরক্ষণ করতে পারেন m.put
জিরকন

2

সি (জিসিসি) , 311 বাইট

নিখুঁত নিদর্শন, তবে অনেক ব্যতিক্রম। তবুও এর চেয়ে ভাল উপায় আর অবশ্যই থাকতে হবে!

f(char*s){char*t="\"5$#(=931",*r[]={"pain", "sham","pods","pseudo","coats","petty","strife","loose","bugs","lady","Player","single","weed","Tumblr","hawks","faux","solids","platonic"};int i=strchr(t,*s^s[2])-t;printf("and %s%s for my %s%cfriends%c",i^5?"real ":"Real",r[i*2],r[i*2+1],i^1?32:45,i^5&&i^2?33:46);}

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

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