बत्तख, बत्तख, गया!


40

यहाँ है (काफी डरावना) पांच छोटे बतख गीत (यह लंबा नहीं है):

Five little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only four little ducks came back.

Four little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only three little ducks came back.

Three little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only two little ducks came back.

Two little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only one little duck came back.

One little duck went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but none of the little ducks came back.

Mother duck herself went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
and all of the little ducks came back.

आपका कार्य इस गीत को आउटपुट करना नहीं है। आपको एक कविता लेनी चाहिए और अगली कविता (अंतिम कविता की अगली कविता पहली कविता है) का उत्पादन करना चाहिए।

नियम

  • कोई मानक खामियों, कृपया।
  • इनपुट / आउटपुट हमारे मानक इनपुट / आउटपुट विधियों के माध्यम से लिया जाएगा।
  • सटीक कविता outputted जाना चाहिए, और कोई मतभेद नहीं है जब किसी गीत के बोल की तुलना में होना चाहिए। जब गाने के बोल की तुलना में भी इनपुट अलग नहीं होगा।

उदाहरण

Mother duck herself went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
and all of the little ducks came back.

अपेक्षित होना:

Five little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only four little ducks came back.

Three little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only two little ducks came back.

अपेक्षित होना:

Two little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only one little duck came back.

22
मुझे याद है कि जब मैं छोटा था, तब यह बहुत अलग था। लेकिन मुझे यह भी याद है कि इससे बहुत दुख हुआ! उन सभी दिनों के लिए कहाँ गायब ducklings थे ?! क्यों कोई भी उनकी तलाश में नहीं था !? और किस तरह की गैरजिम्मेदार माँ इतने सारे बच्चों को खो देती है और बाकी बच्चों को खेलने के लिए बाहर जाने देती है। डर!
झबरा

8
संभव डुप्लिकेट । बस मजाक कर रहे हैं :)
रात 2

7
आपने सिर्फ मुझे डराया।
a _

2
उस गीत के बोल ने मुझे भावनाओं के एक रोलर कोस्टर के माध्यम से जाना सुनिश्चित किया।
न्यूम लॉक

2
मैंने कल यहां पोस्ट किए गए YouTube वीडियो को दो बार, केवल दो बार सुना। अब वह गीत मेरे मस्तिष्क में समा गया है, कहीं भी जाऊं, कुछ भी करूं, मैं उसे सुनता रहता हूं! मदद ...
रात 2

जवाबों:


3

स्टैक्स , 115 111 बाइट्स

τ*^&k─Zè0µ9┬$█◘çl╟☼:Drσ59ò╠▄┴╢Q♂╔¡ô╜Oa╣▀yèA÷╨%^♀█Ö+╡◄ì=∙%╧o▌Θ<▲Çα¿╗√;1°┼╤V◘ú┐♥▒ÇM☼b╩░o]YaL4░ƒ%(Æ♫Q0æÆä⌂¡╘○Eâó╪¡

इसे चलाएं और डीबग करें

सभी छंद परीक्षण मामलों के रूप में


1
जब आप इसे "एक छोटे से बतख" के साथ चलाते हैं, तो यह जवाब देता है "छोटे बतख के छोटे बतख छोटे बतख वापस आ गए हैं।" अंतिम पंक्ति में।
डोरियन

1
बग को आकार में बिना किसी लागत के तय किया गया है। यह वास्तव में एक 2-बाइट लागत के बारे में था, और 2-बाइट बचत को कहीं और ऑफसेट करना, हालांकि बाइट्स यहां मापने के लिए कठिन हैं, क्योंकि परिवर्तन पूरी तरह से संपीड़ित स्ट्रिंग लीटर के अंदर गठबंधन नहीं हैं, या यहां तक ​​कि अंतिम कार्यक्रम में भी।
पुनरावर्ती

19

जावास्क्रिप्ट (ईएस 9), 227 बाइट्स

यह नीचे दिए गए नोड संस्करण के समान है, लेकिन इनपुट पद्य की पहचान करने के parseInt()बजाय एक सूत्र का उपयोग करता है Buffer()

यह ES2018 (उर्फ ES9) है, क्योंकि हम /sध्वज ( dotAll ) के साथ एक नियमित अभिव्यक्ति का उपयोग कर रहे हैं ।

s=>'Mother duck herself1and all23,,Three4two3,Five4four3,Four4three3,One01but none23,Two4one0'.split`,`[parseInt(s,30)&7].replace(/\d/g,n=>[x=' little duck',y=/ w.*\n/s.exec(s),' of the',x+='s',x+y+'but only '][n])+s.slice(-11)

इसे ऑनलाइन आज़माएं!

कैसे?

इस संस्करण में, हम आधार 30 (के रूप में पूरे इनपुट कविता को पार्स 0करने के लिए t) और एक बिटवाइज़ प्रदर्शन और 7 के साथ पार्स पहले अमान्य वर्ण पर बंद हो जाता है, के लिए अग्रणी:

 verse | valid part | base 30 -> decimal | AND 7
-------+------------+--------------------+-------
   0   |  'fi'      |            468     |   4
   1   |  'fo'      |            474     |   2
   2   |  'three'   |       23973734     |   6
   3   |  't'       |             29     |   5
   4   |  'one'     |          22304     |   0
   5   |  'mother'  |      554838747     |   3

जावास्क्रिप्ट (Node.js) ,  233 231  227 बाइट्स

@ बग्घी के लिए 2 बाइट्स का धन्यवाद

s=>'Three4two3,Four4three3,Mother duck herself1and all23,One01but none23,,,Two4one0,,Five4four3'.split`,`[Buffer(s)[2]%9].replace(/\d/g,n=>[x=' little duck',y=/ w.*\n/s.exec(s),' of the',x+='s',x+y+'but only '][n])+s.slice(-11)

इसे ऑनलाइन आज़माएं!

कैसे?

प्रत्येक इनपुट कविता के तीसरे चरित्र का उपयोग एक विशिष्ट पहचानकर्ता के रूप में किया जा सकता है। इसका ASCII कोड मोडुलो 9 लेने से, हमें यह मिलता है:

 verse | 3rd char. | ASCII code | MOD 9
-------+-----------+------------+-------
   0   |    'v'    |     118    |   1
   1   |    'u'    |     117    |   0
   2   |    'r'    |     114    |   6
   3   |    'o'    |     111    |   3
   4   |    'e'    |     101    |   2
   5   |    't'    |     116    |   8

आउटपुट छंद निम्नलिखित टेम्पलेट्स के साथ एन्कोड किए गए हैं:

 verse | template
-------+---------------------------------
   0   | 'Five4four3'
   1   | 'Four4three3'
   2   | 'Three4two3'
   3   | 'Two4one0'
   4   | 'One01but none23'
   5   | 'Mother duck herself1and all23'

जहां प्रत्येक अंक को निम्न तालिका के अनुसार एक स्ट्रिंग के साथ बदल दिया जाता है:

 digit | replaced with
-------+---------------------------------------------------
   0   | ' little duck'
   1   | / w.*\n/s.exec(s)
   2   | ' of the'
   3   | ' little ducks'
   4   | ' little ducks' + / w.*\n/s.exec(s) + 'but only '

जहां नियमित अभिव्यक्ति / w.*\n/sइनपुट से इस आम हिस्से को निकालती है:

  went out one day,[LF]
 over the hills and up away.[LF]
 Mother Duck said, "Quack Quack Quack Quack",[LF]

हम अंत में इनपुट के अंतिम 11 अक्षरों को जोड़ते हैं, जो है " came back."



1
@ शागि निकली। धन्यवाद!
अरनुलद

2
execजब पृष्ठ पुनः लोड किया जाता है तो सुझाव देने के लिए केवल एक और टिप्पणी पोस्ट कर रहा था । महान दिमाग ... !
झबरा

11

पायथन 3 , 267 263 254 बाइट्स

4 बाइट्स @ovs की बदौलत बच गए

def f(s):
 for a in zip(T[2:]+T,T):s=s.replace(*a)
 return s
T="8:9:and allHO1BnoneHT2No1T3Nt2F4Nt3FiveINf4MotherD herself"
for r in "H of theI,4ourI,3hreeI,2woI,1neL:,ILs:,L littleD,D duck,NBonly ,Bbut ".split(','):T=T.replace(r[0],r[1:])
T=T.split(':')

इसे ऑनलाइन आज़माएं!

अगले भाग के संबंधित भागों द्वारा संबंधित भागों को बदलकर काम करता है।

प्रीइंस्टीट्यूशन के बाद, Tहै ['8', '9', 'and all of the little ducks', 'One little duck', 'but none of the little ducks', 'Two little ducks', 'but only one little duck', 'Three little ducks', 'but only two little ducks', 'Four little ducks', 'but only three little ducks', 'Five little ducks', 'but only four little ducks', 'Mother duck herself']

वैकल्पिक पायथन 2 , 252 बाइट्स

@ovs द्वारा

lambda s:reduce(lambda s,a:s.replace(*a),zip(T[2:]+T,T),s)
T="8:9:and allHO1BnoneHT2No1T3Nt2F4Nt3FiveINf4MotherD herself"
for r in "H of theI,4ourI,3hreeI,2woI,1neL:,ILs:,L littleD,D duck,NBonly ,Bbut ".split(','):T=T.replace(r[0],r[1:])
T=T.split(':')

इसे ऑनलाइन आज़माएं!


for a in zip(T,T[-2:]+T):s=s.replace(*a)264 बाइट्स के लिए।
अंडा

या lambda s:reduce(lambda s,a:s.replace(*a),zip(T,T[-2:]+T),s)अजगर 2 में 262 बाइट्स के लिए
ओवर्स

@ थैंक्स, मुझे कुछ चीज़ों को फिर से शुरू करने और T[2:]इसके बजाय इस्तेमाल करने के साथ 263 में मिलाT[-2:]
ब्लैक उल्लू काई

9

QuadR , 257 242 बाइट्स

-14 ब्लैक उल्लू काई के लिए धन्यवाद, -1 केविन क्रूज़सेन के लिए धन्यवाद

ive
Four
hree
Two( little duck)s
One little( duck)
Mother( duck) herself
four
two( little duck)s
only on(e little duck)
but none
and all of the
our
Three
wo
One\1
Mother\1 herself
Five little\1s
three
one\1
none of th\1s
and all
but only four

इसे ऑनलाइन आज़माएं!




7

जावा 10, 347 बाइट्स

s->{String L=" little duck",M="Mother duck herself";int i=9;for(var t:("ive;Four;hree;Two"+L+"s;One"+L+";four;two"+L+"s;only one"+L+";but none;and all of the;"+M).split(";"))s=s.replace(t,++i+"");for(var t:("Five"+L+"s;but only four;and all;none of the"+L+"s;one"+L+";three;"+M+";One"+L+";wo;Three;our").split(";"))s=s.replace(i--+"",t);return s;}

इसे ऑनलाइन आज़माएं।

स्पष्टीकरण:

[10,21]

s->{                     // Method with String as both parameter and return-type
  String L=" little duck",M="Mother duck herself";
                         //  Two temp strings to save bytes
  int i=9;               //  Temp replacement integer, starting at 9
  for(var t:("ive;Four;hree;Two"+L+"s;One"+L+";four;two"+L+"s;only one"+L+";but none;and all of the;"+M).split(";"))
                         //  Loop over the parts to replace:
    s=s.replace(t,       //   Replace the part,
                ++i+""); //   with the integer pre-incremented by 1
  for(var t:("Five"+L+"s;but only four;and all;none of the"+L+"s;one"+L+";three;"+M+";One"+L+";wo;Three;our").split(";"))
                         //  Then loop over the parts to replace with in reverse:
    s=s.replace(i--+"",  //   Replace the (post-decrementing) integer,
    t);                  //   with the replacement-part
  return s;}             //  And then return the modified String as result

7

टी-एसक्यूएल, 407 390 388 382 बाइट्स

DECLARE @ CHAR(999)=REPLACE(REPLACE('SELECT CASE LEFT(v,2)WHEN''Fi74,''Four''),122,4,''three'')WHEN''Fo74,''Three''),123,5,''two'')WHEN''Th75,''Two''),121,16,''on#'')WHEN''Tw716,''On#''),115,20,''none of th#s'')WHEN''On715,''Mother duck herself''),115,8,''and all'')WHEN''Mo719,''Fiv#s''),113,14,''but only four'')END FROM i',7,'''THEN STUFF(STUFF(v,1,'),'#','e little duck')EXEC(@)

iVARCHAR(MAX)v

कुछ बाइट-सेविंग REPLACEs के बाद, डायनेमिक SQL के रूप में निम्नलिखित को निष्पादित करता है:

SELECT CASE LEFT(v,2)
       WHEN'Fi'THEN STUFF(STUFF(v,1,4,'Four'),122,4,'three')
       WHEN'Fo'THEN STUFF(STUFF(v,1,4,'Three'),123,5,'two')
       WHEN'Th'THEN STUFF(STUFF(v,1,5,'Two'),121,16,'one little duck')
       WHEN'Tw'THEN STUFF(STUFF(v,1,16,'One little duck'),115,20,'none of the little ducks')
       WHEN'On'THEN STUFF(STUFF(v,1,15,'Mother duck herself'),115,8,'and all')
       WHEN'Mo'THEN STUFF(STUFF(v,1,19,'Five little ducks'),113,14,'but only four')END
FROM i

सूचीबद्ध पदों पर पात्रों को सम्मिलित / अधिलेखित करने के लिए एक CASEबयान और STUFFआदेशों का उपयोग करता है ।

EDITS :

  1. मूल (नीचे) को पूरी तरह से अलग रणनीति के साथ बदलें
  2. एक स्थान के LEFTबजाय स्विच करने SUBSTRINGऔर समाप्त करने से दो बाइट्स सहेजे गए
  3. चर को 6 बाइट्स में बदलकर CHARदूसरे में एक अतिरिक्त अक्षर को स्थानांतरित करने के लिए REPLACE(धन्यवाद, @CDC!)

यहाँ मेरा पहला संस्करण है, एक अलग विधि (पोस्ट-प्रतिस्थापन, स्वरूपित) का उपयोग करके:

DECLARE @ VARCHAR(MAX)
SELECT @=v FROM i
SELECT @=REPLACE(@,PARSENAME(value,2),PARSENAME(value,1))
FROM string_split('e.but none.and all
                  -e.One little duck.Mother duck herself
                  -o.only one little duck.none of the little ducks
                  -o.Two little ducks.One little duck
                  -r.two little ducks.one little duck
                  -r.Three.Two
                  -u.three.two
                  -u.Four.Three
                  -v.four.three
                  -v.Five.Four
                  -t.and all of the.but only four
                  -t.Mother duck herself.Five little ducks','-')
WHERE LEFT(value,1)=SUBSTRING(@,3,1)
PRINT @

STRING_SPLITऔर PARSENAMEपंक्तियों और स्तंभों में -और .विभाजक के माध्यम से एक स्ट्रिंग को तोड़ने के लिए उपयोग किया जाता है ।

पहला कॉलम एक मुख्य पात्र है जो इनपुट कविता के तीसरे अक्षर (विचार के लिए धन्यवाद, @ नाइट 2) के खिलाफ मेल खाता है। दूसरा और तीसरा उस कविता के लिए किए जा रहे प्रतिस्थापन हैं।


पहला समाधान, यदि आप "VARCHAR (MAX)" के बजाय "CHAR (700)" का उपयोग करते हैं, तो आप 3 बाइट्स बचा सकते हैं। अपने "छोटे बतख" में भी, आप इसके बजाय "ई थोड़ा बतख" कर सकते हैं और प्रत्येक प्रतिस्थापन पर # से पहले ई हटा सकते हैं एक और 3 पाने के लिए
सीडीसी

BTW, वास्तव में मजेदार समाधान। मैंने आपके बहुत करीब आने के लिए फॉर्मेटमैसेज का इस्तेमाल किया, लेकिन काफी नहीं।
CDC

अच्छे सुझाव, @CDC, धन्यवाद!
ब्रैडसी

6

पायथन 2 , 1034 बाइट्स

यह मेरा कोड है! यह एक सरल शब्दकोश को रोजगार देता है। इस कोड को चलाने के बाद, आप किसी भी कविता को दर्ज कर सकते हैं और यह अगली कविता को आउटपुट करेगा।

PS: मैं इस चैनल में नया हूं और यह मेरी पहली पोस्ट है। मैं वास्तव में इस चुनौती को पसंद करता था इसलिए इसे आजमाने का फैसला किया। कृपया मुझे सुधारने के लिए स्वतंत्र महसूस करें।

import sys
i=sys.stdin.readlines()
s={"Mother":"""Five little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only four little ducks came back.""",
"Five":"""Four little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only three little ducks came back.""",
"Four":"""Three little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only two little ducks came back.""",
"Three":"""Two little ducks went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but only one little duck came back.""",
"Two":"""One little duck went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
but none of the little ducks came back.""",
"One":"""Mother duck herself went out one day,
over the hills and up away.
Mother Duck said, "Quack Quack Quack Quack",
and all of the little ducks came back."""}
print s[i[0].split(" ")[0]]

11
साइट पर आपका स्वागत है! आमतौर पर हम शब्दकोश को स्रोत के भाग के रूप में गिनते हैं। चुनौती का हिस्सा यह प्रयास करना और इसे जितना संभव हो उतना छोटा बनाना होगा। कुछ तरीके भी हैं जिनसे आप इसे छोटा कर सकते हैं। 1) चूंकि आपको पठनीय होने के लिए कोई अंक नहीं मिलता है, इसलिए आप एकल वर्ण चर नाम (जैसे xया a) 2 का उपयोग कर सकते हैं। पायथन व्हॉट्सएप के साथ बहुत अनुज्ञेय है इसलिए मैं आपके कुछ व्हाट्सएप को भी हटाने की कोशिश करूंगा। उदाहरण के लिए आपको आसपास रिक्त स्थान की आवश्यकता नहीं है =। अंत में हम अजगर में गोल्फ के लिए एक पृष्ठ है आप अपने खेल को देख सकते हैं।
गेहूं जादूगर

वाह @ SriotchilismO'Zaic! यह मददगार है..धन्यवाद! :)
स्तुति प्रकाश प्रभु

1
आप अनावश्यक व्हाट्सएप और चर को हटाकर इसे आसानी से गोल्फ कर सकते हैं, sysउदाहरण के लिए आयात करने से बचें raw_input(), शब्दकोश की कुंजी को छोटा करें, आदि। आपको सबसे निश्चित रूप से गीत के दोहराए गए खंडों को निकालना चाहिए और उन्हें अलग से जोड़ना चाहिए
जो किंग

@JoKing जैसा कि मैंने उल्लेख किया है यह मेरी पहली पोस्ट है और मैंने इसमें बहुत सोचा नहीं था। बस मैं इसे एक कोशिश देना चाहता था, लेकिन मुझे अब यह विचार मिल गया है। मेरी अगली पोस्ट इससे बहुत बेहतर और छोटी होने जा रही है - आप सभी लोगों का धन्यवाद .. मुझे धन्यवाद! :)
प्रचेती प्रकाश प्रभु

6

PHP (7.4), 253 247 बाइट्स

-6 बाइट्स में सुधार करके कि कैसे रिप्लेसमेंट ऐरे को "अनकेपिंग इनरेज़" से अधिक मदद से बनाया गया है।

<?=strtr($argv[1],array_combine([0,1,...$a=[Five.$l=($o=" little duck").s,($b="but only ").four.$l,Four.$l,$b.three.$l,Three.$l,$b.two.$l,Two.$l,$b.one.$o,One.$o,"but none of the$l","Mother duck herself","and all of the$l"]],[...$a,$a[0],$a[1]]));

इसे ऑनलाइन आज़माएं!

यह एक key=>valueप्रारूप में हर संभव प्रतिस्थापन (12 उपयोग किए गए + 2 अप्रयुक्त) की एक सरणी बनाता है । उदाहरण: ['Mother duck herself' => 'Five little ducks', etc...]और फिर स्ट्रेट का उपयोग करने वालों को बदल देता है ।

एकमात्र दिलचस्प बात यह है कि मेरा पहला प्रयोग है "अनपैकिंग इनसाइड एरेस" जो PHP 7.4 में एक नई सुविधा है।


PHP , 264 बाइट्स

<?=str_replace(($a=[[Five.$l=($o=" little duck").s,($b="but only ").four.$l],[Four.$l,$b.three.$l],[Three.$l,$b.two.$l],[Two.$l,$b.one.$o],[One.$o,"but none of the$l"],["Mother duck herself","and all of the$l"]])[$i=strpos(vuroet,($v=$argv[1])[2])],$a[++$i%6],$v);

इसे ऑनलाइन आज़माएं!

मैंने प्रत्येक कविता के अलग-अलग शब्दों को एक सरणी में संग्रहीत किया है। मुझे पता है कि इनपुट के तीसरे वर्ण का उपयोग कौन सा कविता है क्योंकि यह अद्वितीय ( vuroet) है। फिर मैं बस उस कविता के विभिन्न शब्दों को अगले पद के अलग-अलग शब्दों से बदल देता हूँ।


5

साफ , 352 बाइट्स

import StdEnv,Text
$n={#"Five"+e+"four"+d,"Four"+e+"three"+d,"Three"+e+"two"+d,"Two"+e+"one"+a,"One"+a+b+"but none"+f,"Mother duck herself"+b+"and all"+f}.[indexOf{n.[2]}"tvuroe"]+" came back."
a=" little duck"
b=" went out one day,\nover the hills and up away.\nMother Duck said, \"Quack Quack Quack Quack\",\n"
d=a+"s"
e=d+b+"but only "
f=" of the"+d

इसे ऑनलाइन आज़माएं!



3

पावरशेल , 356 343 340 336 बाइट्स

param($p)$l,$M=' little duck','Mother duck herself'
("ive!our;four!three;hree!wo;Four!Three;two!one;s c! c;Two!One;s w! w;only one!none of the;k c!ks c;One$l!$M;but none!and all;$M!Five$l`s;and all of the!but only four"-split';')[$(switch -r($p){^Fi{0,1}^Fo{2,3}^Th{2,4,5}^Tw{6..9}^O{10,11}^M{12,13}})]|%{$p=$p-creplace($_-split'!')}
$p

इसे ऑनलाइन आज़माएं

अधिक पठनीय संस्करण:

param($p)
$l, $M = ' little duck', 'Mother duck herself'
$replacements = @"
ive!our
four!three
hree!wo
Four!Three
two!one
s c! c
Two!One
s w! w
only one!none of the
k c!ks c
One$l!$M
but none!and all
$M!Five$l`s
and all of the!but only four
"@ -split '\n'
$i = switch -regex ($p) { ^Fi { 0, 1 }
                          ^Fo { 2, 3 }
                          ^Th { 2, 4, 5 }
                          ^Tw { 6..9 }
                          ^O  { 10, 11 }
                          ^M  { 12, 13 } }
$replacements[$i] | % { $p = $p -creplace ( $_ -split '!' ) }
$p

3

PowerShell , 265 263 255 251 246 बाइट्स

$d='Five1four2s,Four1three2s,Three1two2s,Two1one2,One23but none52s,Mother duck herself3and all52s'-split','
'2s34',' little duck',-join($args-split'(\s)')[5..39],'but only ',' of the'|%{$d=$d-replace++$i,$_}
$d[+"$args"[2]*37%724%7]+' came back.'

इसे ऑनलाइन आज़माएं!

मैंने अभिव्यक्ति खोजने के लिए जानवर बल का इस्तेमाल किया +"$args"[2]*37%724%7

 verse | 3rd char. | ASCII code | *37%724%7
-------+-----------+------------+-----------
   0   |    'v'    |     118    |   1
   1   |    'u'    |     117    |   2
   2   |    'r'    |     114    |   3
   3   |    'o'    |     111    |   4
   4   |    'e'    |     101    |   5
   5   |    't'    |     116    |   0

धन्यवाद @Arnauld के लिए 3rd char


2

जाप v2.0a0, 143 बाइट्स

प्रतिस्थापन के साथ एक ही पद्य को कूटने की कोशिश की, लेकिन अंत में, अरनुलड के समाधान को छोटा करते हुए समाप्त हो गया। एक और विचार है, उम्मीद है, फिर से बाहर काम कर सकते हैं, लेकिन पता नहीं है, जब मैं कोशिश करने के लिए मिल जाएगा।

tBn)i`Fr4È(e3
Two4e0
MÇ@r Ýõ Êelf1d a¥23
O01¿t Í
23
TËG4two3
Five4fr3`·g`v`b¢Î)r\dÈ°g[V=` Ò¤ Ýõ`W=Uf/ w.*\n/s `  e`V±'sV+W+`¿t § `]

यह कोशिश करो - सभी छंद शामिल हैं


2

बैश , 373 355 बाइट्स

यहाँ कुछ भी पागल नहीं है। दो चरित्र वाले चर (a1, a2, a3, e1..e6) को एकल चरित्र वाले लोगों के साथ बदलने के लिए कुछ आसान बाइट में कमी होगी।

read a{1..3} b
read c
read d
read e{1..6}
W="$e1 $e2"
X="${e3^} $a2 $a3"
Y="$e5 $e6"
Z="$e4 $Y"
p=$X
case $a1 in M*)p="Five ${Y::12}";s="but only four $Y";;O*)p="${d::11} herself";s="and all of $Z";;Tw*)p=${X/s};s="$e1 none of the $a2 ducks $e6";;Th*)s="$W one $e4 duck $e6";;Fo*)s="$W two $Z";;Fi*)s="$W three $Z";;esac
echo $p $b;echo $c;echo $d;echo $s

इसे ऑनलाइन आज़माएं!

इसे ऑनलाइन आज़माएं!


2

05AB1E , 134 बाइट्स

“€µ‚•„í†ìˆÈ“#’ „ê Ðœs’δJ樅î¥Ðœº¶s‚ìðδJD…€³€É δ쨦“€ƒ€Ÿ€‚€€““€³Šª€‚€€“‚’ „ê Ðœs ’δJ셋邃.δJU.•4Ôāl•|н2èk©è.ª?I„ 
ý#3.$17£ðý„ 
¶:,X®è?

इसे ऑनलाइन आज़माएं!

चूंकि मैं 05AB1E के लिए अपेक्षाकृत नया हूं, इसलिए यह शायद बहुत अधिक हो सकता है

                ### Preparation of the output strings ###
“€µ‚•„í†ìˆÈ“        push "one two three four five"
#                   split that by spaces
’ „ê Ðœs’           push " little ducks"
δJ                  join each number with " little ducks"
ć¨                  separate "one little ducks" and drop the "s"
…î¥Ðœº¶             push "mother duck herself"
s                   swap it with "one little duck"
‚ì                  prepend both strings to the list ["mother duck herself", "one little duck", "two little ducks" ... ]
ðδJ                 append a space to each list entry
D                   duplicate it
…€³€É               push "but only "
δì                  prepend "but only " to each list entry
¨¦                  drop the first and last list entry
“€ƒ€Ÿ€‚€€“          push "and all of the"
“€³Šª€‚€€“          push "but none of the"
‚                   push the two strings into a list
’ „ê Ðœs ’δJ        append " little ducks " to each
ì                   prepend it to the sentence list ["and all of the little ducks ", "but none of the little ducks ", "but only one little duck " ...]
…‹é‚ƒ.              push "came back."
δJ                  append that to each list entry
U                   save that list in X for later use

                ### Determine which verse has to be answered ###
.•4Ôāl•             push "eoruvt"
|н2è                get the third letter of the input
k                   get the index of that letter in "eoruvt". Now we know which verse we must return
©                   save that index in ® for later use

                ### Print the answer strings ###
è.ª?                print that index of the first sentence list (first three words of answer)
I„                  join the four input strings by <space><newline>
ý
#                   split that by spaces
3.$                 cut off the first three words
17£                 keep only the next 17 words
ðý                  join remaining words by spaces
„ 
¶:                  replace <space><newline> by only <newline>
,                   print that ("went out ... Quack\",") 
X®è?                print the last line of answer

1

पर्ल 6 , 247 बाइट्स

{S:i/ne\sl.*?<(s//}o{m/..(.)(\S*)**3%\s(.**92).*(.**11)/;[(my$l=" little ducks")~$3 XR~"Mother duck herself$2and all of the","One{$l~=$2}but none of the","Five{$l~="but only "}four","Four{$l}three","Three{$l}two","Two{$l}one"]["eotvur".index($0)]}

इसे ऑनलाइन आज़माएं!

निश्चित रूप से गोल्फ के लिए, विशेष रूप से सूची में अंतिम 5 तत्व "num $l num-1", या शुरुआती रेगेक्स जो पुराने इनपुट के सही हिस्सों से मेल खाते हैं।


1

चारकोल , 156 बाइट्स

≔⌕tvuroe§θ²δ§⪪”↶0∨↘»≔xj➙⌈´βXPNLA‽⟦O⧴&▷V'¦³≧ψZρ⊞t”¶δF‹δ⁵”↶↧V4ⅉH‴G%”F‹δ⁴s⮌…⮌θ¹⁸⸿η⸿ζ⸿§⪪”}∧h⁴NQ≕Q^⪫ΦG✂q'ⅉMG./_⸿s⁵6P⁴″⊟±NNpOfBz↷Fι‖TM→⁻γ?k⁴ς!d⁵º'E,θ}x§-υ”¶δ✂ε±¹¹

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

≔⌕tvuroe§θ²δ

पहली पंक्ति के तीसरे वर्ण को देखें कि हम कौन सा पद चाहते हैं।

§⪪”↶0∨↘»≔xj➙⌈´βXPNLA‽⟦O⧴&▷V'¦³≧ψZρ⊞t”¶δF‹δ⁵”↶↧V4ⅉH‴G%”F‹δ⁴s⮌…⮌θ¹⁸

आउटपुट तार की सूची में अनुक्रमण द्वारा पहली पंक्ति के पहले भाग Five, Four, Three, Two, One, Mother duck herself। फिर प्रिंट करें little duckऔर sजैसा उचित हो, इनपुट लाइन के अंतिम 18 वर्णों (जो प्रत्येक कविता पर हमेशा समान हों) के बाद।

⸿η⸿ζ⸿

मध्य दो पंक्तियाँ हमेशा प्रत्येक कविता पर समान होती हैं।

§⪪”}∧h⁴NQ≕Q^⪫ΦG✂q'ⅉMG./_⸿s⁵6P⁴″⊟±NNpOfBz↷Fι‖TM→⁻γ?k⁴ς!d⁵º'E,θ}x§-υ”¶δ✂ε±¹¹

अंतिम पंक्ति के लिए यह little ducksकिसी कारण के विकल्प की सूची में शामिल करने के लिए गोल्फर निकला , लेकिन अंतिम 11 अक्षर अभी भी इनपुट से कॉपी किए गए हैं।


1

स्याही , 353 बाइट्स

=d(v)
~temp n=(v?"Fi")+(v?"F")*4+(v?"Th")+(v?"T")*2+(v?"O")
{n-1:{n:{n-5:{n-4:{n-3:One|Two}|Three}|Four}|Five} little duck{n-2:s}|Mother duck herself} went out one day,
over the hills and up away,
Mother Duck said "Quack Quack Quack Quack",
{n-1:but {n-2:only {n:{n-5:{n-4:one|two}|three}|four}|none of the}|and all of the} little duck{n-3:s} came back.

इसे ऑनलाइन आज़माएं!

सबसे पहले, चेक सबस्ट्रिंग का उपयोग करता है यह पता लगाने की क्या कविता हम कर रहे हैं - शुरू में संख्या का पूंजीकरण करने के लिए आसान पर्याप्त धन्यवाद है कि - F, Tऔर Oकिसी भी अन्य स्थानों में नहीं होती है, और आप से दूसरे और चौथे कविता भेद कर सकते हैं पहले और तीसरे के लिए भी Fiऔर Thक्रमशः जाँच करके ।

फिर हम सिर्फ वही करते हैं जो स्याही सबसे अच्छा करती है और सशर्त के साथ सादे पाठ को प्रिंट करती है। मैंने पहली बार स्विच स्टेटमेंट का उपयोग करने की कोशिश की, लेकिन जब यह अच्छा लग रहा था, यह वास्तव में लंबे समय तक समाप्त हो गया।
आपको लगता है कि Quackचर का उपयोग करने के लिए एक अच्छी जगह होगी, क्या एक स्ट्रिंग के साथ एक गुच्छा दोहराया जा रहा है, लेकिन चर पर्याप्त ओवरहेड के साथ आते हैं जो हर तरह से मैंने करने की कोशिश की जो कोड लंबे समय तक बना रहे। शायद यह एक संकेत है कि मैं स्याही में गोल्फ नहीं कर रहा हूँ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.