แมวไป Meow วัวไปหมู่


40

ทุกคนรู้ว่าแมวเป็นแมว แต่สิ่งที่คนส่วนมากไม่รู้ก็คือ caaaats ไป meeeeoooow ในความเป็นจริงความยาวของเสียงสระเสียงที่แมวทำขึ้นอยู่กับความยาวของเสียงสระที่คุณพูดถึง

ในทำนองเดียวกันวัวไปมู่ แต่โคooowsไปมู่

ท้าทาย

คุณต้องเขียนโปรแกรมที่ใช้เป็นอินพุตคำหมายถึง cat และคำที่มีความหมายกับวัวกำหนดจำนวนของสระหลักและพิมพ์หนึ่งในสตริงต่อไปนี้ตามความเหมาะสม:

  • C[]ts go M[]w
  • C[]ws go M[]

ซึ่ง[]ย่อมาจากสระตามกฎต่อไปนี้:

  • จำนวนของ e และ o ใน "Meow" ต้องตรงกับจำนวนของสระที่พบในคำที่ป้อน
  • จำนวนของ o ใน "หมู่" จะต้องเป็นสองเท่าของจำนวนเสียงสระที่พบในคำที่ป้อน

โปรแกรมจะต้องรับรู้คำศัพท์การป้อนข้อมูลและcat cowอินพุตอาจใช้ตัวพิมพ์ใหญ่ใด ๆ ที่สะดวกที่สุด แต่ผลลัพธ์จะต้องเป็นตัวพิมพ์ใหญ่ตามที่แสดงข้างต้น


42
คิวตลกเกี่ยวกับสุนัขจิ้งจอกตัวหนึ่ง
Martin Ender

7
ฉันไม่แน่ใจว่าฉันเข้าใจความท้าทาย อินพุตหนึ่งหรือสองคำหรือไม่ คุณสามารถยกตัวอย่างคู่ของอินพุต / เอาท์พุตได้หรือไม่?
Zgarb

31
@ MartinBüttnerฉันไม่แน่ใจว่าฉันรู้ว่าคุณพูดถึงสุนัขจิ้งจอกตัวไหน Jog หน่วยความจำของฉันมันพูดว่าอะไร?
DJMcMayhem

4
คุณระบุจำนวนของ e และ o แต่ไม่ใช่คำสั่งของพวกเขา คือMeooeoewการส่งออกที่ถูกต้องสำหรับCaaatเช่น?
Peter Olson

10
เพื่อเห็นแก่จิ้งจอกหยุดด้วยการเล่น!
Eumel

คำตอบ:


17

เรติน่า , 57 49 44 43 41 ไบต์

ใกล้ ... :) Pyth ...

.(.+).
$0s go M$1$1
+`aa(\w*$)
e$1ow
wo
o

ลองออนไลน์

คาดว่าจะได้รับการป้อนข้อมูลทุนเหมือนหรือCaaatCoooow

คำอธิบาย

.(.+).
$0s go M$1$1

regex ตรงกับอินพุตทั้งหมดและจับเสียงสระในกลุ่ม1(เราไม่ต้องการแองเคอร์เนื่องจากการจับคู่ไม่สามารถล้มเหลวและจะจับคู่กับอินพุตทั้งหมดอย่างตะกละตะกลาม) การทดแทนจะเขียนอินพุตนั้นและผนวกเข้าs go Mด้วยกันตามด้วยสระสองครั้ง สำหรับอินพุตCaaatและCoooowเราได้รับ:

Caaats go Maaaaaa
Coooows go Moooooooo

เอาต์พุตสำหรับวัวถูกต้องแล้ว เราแค่ต้องทำอะไรบางอย่างเกี่ยวกับแมวพวกนั้น

+`aa(\w*$)
e$1ow

+บอก Retina ที่จะทำซ้ำขั้นตอนนี้ได้บ่อยเท่าที่เป็นไปได้ regex จับคู่สองas ในส่วนสุดท้ายของสตริง (เราตรวจสอบด้วย$สมอเพื่อไม่ให้แทนที่สิ่งที่อยู่ภายในCaaats) นี้เป็นหลักจะตรงกับทุกอย่างหลังจากMตราบใดที่เป็นส่วนหนึ่งที่ยังคงมีas ทั้งสองaจะถูกลบออกและคำต่อท้ายทั้งหมดหลังจากที่ถูกห่อในe...ow:

Caaats go Meaaaaow
Caaats go Meeaaowow
Caaats go Meeeowowow

สุดท้ายมีสองจำนวนมากwในผลที่ตามมาดังนั้นเราจึงเอาผู้ที่นำหน้าo(เพื่อให้แน่ใจว่าเราไม่ได้ล้อเล่นขึ้นwในCoooows):

wo
o

และเราถูกทิ้งให้อยู่กับ:

Caaats go Meeeooow

11

LabVIEW, 58 LabVIEW Primitives

การสร้างสตริงเช่นนี้เป็นความเจ็บปวด ...

vis ซ้ายสุดคือการจับคู่รูปแบบ a + และ o + ตามลำดับค้นหาจำนวน lagest และ as ในแถวตามลำดับ

รับความยาวของสิ่งที่ฉันสร้าง 3 อาร์เรย์ 1 ด้วยความยาว OS 1 ด้วยความยาว es และอีกหนึ่งด้วย 2 ครั้งความยาว OS

จากนั้นทุกส่วนเข้าด้วยกัน ก่อนอื่นให้ป้อนข้อมูลต้นฉบับจากนั้นไปที่ M Array ทั้งหมดอาร์เรย์ที่ไม่ได้ใช้จะว่างเปล่าดังนั้นพวกเขาจะถูกละเว้น (หากพบว่ามีจะอยู่ที่หลังการแข่งขันถ้าไม่หลังจากการแข่งขันว่างเปล่า)

สำหรับ lolz ฉันยังนำสุนัขจิ้งจอกไปด้วย 6 เอาต์พุตที่แตกต่างกัน ^^


ฉันไม่มีวิธีทดสอบ แต่ถ้ามันใช้งานได้ตามที่คุณพูดฉันก็ประทับใจดี!
Sonic Atom

คุณสามารถให้คำอธิบายโดยไม่สนใจได้หรือไม่?
Sonic Atom

คำอธิบายขึ้นครับอย่าลังเลที่จะถามหากมีคำถามใด ๆ
Eumel

การตีกอล์ฟเหมือนเจ้านาย ว้าว.
Jakuje

7

Pyth, 50 44 34

["caat", "coow"]จะเข้าในรูปแบบ

Pj.bs[rN3"s go M"S*-lN2+Y\o\w)Q"eo

ลองออนไลน์

อธิบาย:

  .b                                  Map a lambda across two lists in parallel:
                              Q       The input, e.g. ["caat", "coow"]
                               "eo    The string "eo"
    s[                       )            Create and concatenate a list of:
      rN3                                 - The item N in title caps (e.g. "Caat")
         "s go M"                         - The string "s go M"
                 S                        - The sorted version of:
                       +Y\o                   The item Y + "o" ("eo" or "oo")
                  *-lN2                       Times the length of N - 2 (number of vowels)
                           \w             - The string "w"
Pj                                    Join the result on \n and drop the final "w"

ขอบคุณJakubeสำหรับการลดความยาวครั้งใหญ่


บางสิ่งบางอย่างเล็ก ๆ น้อย ๆ : คุณสามารถเปลี่ยนเป็นครั้งแรกjkที่มีการsลบสองjk(มันไม่ได้ทำอะไรเลย) และแทนที่ด้วย"w\n" \wb
Jakube

นอกจากนี้โค้ดส่วนใหญ่ของคุณจะปรากฏสองครั้งในรหัสของคุณเช่นr.Q3และสิ่งอื่น ๆ คุณสามารถใช้ binary_map และบันทึก 10 ตัวอักษรเพิ่มเติม Pj.bs[rN3"s go M"S*-lN2+Y\o\w)Q"eo. ไม่แน่ใจว่าถ้าคุณมีประสบการณ์กับแผนที่ถ้าคุณมีคำถามใด ๆ ที่ฉันสามารถอธิบายให้คุณในPyth การพูดคุย
Jakube

ขอบคุณมาก ฉันคิดว่าฉันสามารถทำอะไรแบบนั้นได้ แต่ไม่รู้ว่าจะทำอย่างไร
ลุค

มันมีประสิทธิภาพมาก ควรมี upvotes มากกว่านี้
Sonic Atom


5

Perl, 66 61 55 54 ไบต์

รวม +1 สำหรับ -p

/[ao]+/;$\="s go M".$&=~y/a/e/r.o x($+[0]-1).(w)[/w/]

การป้อนข้อมูลที่คาดว่าจะเป็นไปตาม/^C[ao]+[tw]$/(ไม่มีการขึ้นบรรทัดใหม่!)
การใช้งาน:/bin/echo -n Caaat | perl -p 55.pl

ชำรุด

/[ao]+/;
$\= "s go M"        # assign to $OUTPUT_RECORD_SEPARATOR, normally `\n`. Saves 1 vs `$_.=`
   . $&             # the matched vowels
     =~ y/a/e/r     # translate `a` to `e`; `/r` returns a copy.
   . o x($+[0]-1)   # append 'o', repeated. $+[0] is string position of last match end.
   . (w)[/w/]       # returns 'w' if there is no /w/ in the input, nothing if there is.

รุ่นก่อนหน้า:

@l=/[ao]/g;$x=$&x@l.o x@l;$y=$x=~y/a/e/?w:'';s/$/s go M$x$y/

แสดงความคิดเห็น :

@l = /[ao]/g;               # captures $& as vowel and @l as list of vowels
$x = $& x @l .o x @l;       # construct the output vowels
$y = $x =~ y/a/e/ ? w : ''; # correct vowel string for cats (aaaooo->eeeooo); $y='w' if cat.
s/$/s go M$x$y/             # construct the desired output.

ตัวอย่าง: Caaat

  • จับ$&เป็นaและเป็น@l(a,a,a)
  • ตั้ง$xสามครั้งaตามด้วย 3 ครั้ง:oaaaooo
  • แปลทั้งหมดaใน$xการ:e eeeoooจำนวนการแทนที่ (ทั้ง 0 หรือบวก) ทำหน้าที่เป็นเครื่องตรวจจับแมว: ตั้ง$yเป็นwถ้าเป็นเช่นนั้น
  • เปลี่ยนการรับสัญญาณโดยท้ายs go M, และeeeooow

  • อัปเดต 61 : บันทึก 5 ไบต์โดยใช้รายการแทนสตริง
  • อัปเดต 55 : บันทึก 6 ไบต์โดยการกำหนดกำหนด$\แทนs/$/และไม่ต้องขึ้นบรรทัดใหม่ในอินพุต
  • อัปเดต 54 : บันทึก 1 ไบต์โดยกำจัด @l

4

Python 2, 74 ไบต์

i=input()
l=len(i)-2
print i+'s go M'+['e'*l+'o'*l+'w','o'*l*2][i[-1]>'v']

รับอินพุต

Caaat หรือ Cooow


2

CJam ( 60 57 55 53 ไบต์)

"C%s%ss go M%sw
"2*-2<q"ctw"-S/"teowoo"3/.{(2$,@*$}e%

สาธิตออนไลน์ อินพุตจะถือว่าเป็นตัวพิมพ์เล็ก

สำหรับความยาวเดียวกัน:

"C

s go M"N/_]"w
"a*q"ctw"-S/"teowoo"3/.{(2$,@*$M}]z

'CM"s go M"]2*q"ctw"-S/"teowoo"3/.{(2$,@*$}[MM"w
"]]z

1

PowerShell, 135 132 ไบต์

param($a,$b)
[char[]]"$a$b"|%{if($_-eq'a'){$c++}$d++}
$d-=4+$c
"C$("a"*$c)ts go M$("e"*$c)$("o"*$c)w"
"C$("o"*$d)ws go M$("o"*2*$d)"

(linebreaks นับเช่นเดียวกับอัฒภาคดังนั้นเส้นแบ่งเพื่อความชัดเจน)

ความท้าทายที่น่าประหลาดใจ และฉันก็แน่ใจว่านี่จะสามารถเล่นกอล์ฟต่อไป

ใช้เวลาสตริงการป้อนข้อมูลเป็นและ$a เชื่อมพวกเขาและปลดเปลื้องพวกเขาเป็นถ่านอาร์เรย์แล้วท่อที่ผ่านห่วง$b %{}จากนั้นตรวจสอบจดหมายแต่ละฉบับว่าเป็น-eqไปตามหรือไม่'a'และตัวนับที่เกี่ยวข้องจะเพิ่มขึ้นอย่างเหมาะสม จากนั้นเราจะลบ4+$cจาก$dไปยังบัญชีสำหรับcatcwในอินพุตและดำเนินการกำหนดประโยคเอาท์พุทปรับเปลี่ยนเอาท์พุทสระครั้งเคาน์เตอร์ที่สอดคล้องกัน (ใน PowerShell 'e'*3จะให้ผลตอบแทน'eee'เป็นต้น)


1

เกือบจะคล้ายกับคำตอบของ @ omulusnr แต่สิ่งนี้สร้างเอาต์พุตที่ถูกต้องและอินพุตยังไม่คำนึงถึงขนาดตัวพิมพ์

PHP, 172

$p=$argv[1];
preg_match("/c([ao]+)/i",$p,$e);
$l=strlen($e[1]);
$s=($k=strcmp($e[0][1],'o'))?'eo':'oo';
echo $p,' go M',str_repeat($s[0],$l),str_repeat($s[1],$l),$k?'w':'';

$p=$argv[1];preg_match("/c([ao]+)/i",$p,$e);$l=strlen($e[1]);$s=$k=strcmp($e[0][1],'o')?'eo':'oo';$r='str_repeat';echo $p,' go M',$r($s[0],$l),$r($s[1],$l),$k?'w':'';สั้นลงเล็กน้อยถึง 166 ไบต์
Tschallacka

1

สวิฟต์ 2, 3̶8̶1̶ 333 ไบต์

func f(i:String)->String{var s=i.lowercaseString;s.replaceRange(s.startIndex...s.startIndex,with:String(s[s.startIndex]).uppercaseString);let c=i.characters.count-2;let l=s.characters.last;return(s+"s go M"+String(count:c,repeatedValue:l=="t" ?"e" :"o" as Character)+String(count:c,repeatedValue:"o" as Character)+(l=="t" ?"w" :""))}

Ungolfed:

func f(i:String)->String{
    var s = i.lowercaseString
    s.replaceRange(s.startIndex...s.startIndex,with:String(s[s.startIndex]).uppercaseString)
    let c = i.characters.count-2
    let l = s.characters.last
    return(s+"s go M"+String(count:c,repeatedValue:l=="t" ?"e" :"o" as Character)+String(count:c,repeatedValue:"o" as Character)+(l=="t" ?"w" :""))
}

ใช้แมวหรือวัวเป็นตัวพิมพ์ใหญ่ใด ๆ คุณสามารถลองได้ที่นี่:

http://swiftlang.ng.bluemix.net/#/repl/3f79a5335cb745bf0ba7698804ae5da166dcee6663f1de4b045e3b8fa7e48415


2
สิ่งนี้นำเข้าอย่างไร
ปาเก็ตตี้

ไม่มีการป้อนข้อมูลในตัวอย่างนี้ฉันได้ทำการทดสอบบนสนามเด็กเล่นดังนั้นไม่มีการป้อนข้อมูลที่นั่นต้องใช้ vars เพื่อทดสอบ
Fidel Eduardo López

1
ฉันคิดว่านั่นทำให้มันเป็นตัวอย่าง มันจะต้องมีฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบที่จะถูกต้อง : /
ปาเก็ตตี้

1
ตกลงฉันทำมันเป็นฟังก์ชั่น ..
Fidel Eduardo López

1

MATLAB: 190 152 118 ไบต์

i=input('','s');b=sum(i=='a');c=sum(i=='o');d=b>c;disp(['C',i(2:2+b+c),'s go M',i(2:1+b)+4,repmat('o',1,b+2*c),'w'*d])

Ungolfed:

i=input('','s');
b=sum(i=='a');
c=sum(i=='o');
d=b>c;
disp(['C',i(2:2+b+c),'s go M',i(2:1+b)+4,repmat('o',1,b+2*c),'w'*d])

แบบทดสอบ:

caaaaaaaats
Caaaaaaaats go Meeeeeeeeoooooooow

cooooows
Cooooows go Moooooooooo

PS: ขอบคุณ @Kenney สำหรับคำแนะนำที่ดี (ดูความคิดเห็น)!


จะdisp( (b>0)*[...] + (c>0)*[...] )ทำงานที่นี่ไหม
Kenney

ข้อเสนอแนะที่ดี @Kenney
brainkz

1

PHP, 138 ไบต์

echo ucfirst($a=$argv[1]).'s go M'.(($n=substr_count($a,'a'))?str_repeat('e',$n).str_repeat('o',$n).'w':str_repeat('oo',substr_count($a,'o')));

อ่าน:

echo ucfirst($a = $argv[1]) . 's go M'. (
    ($n = substr_count($a, 'a'))
        ? str_repeat('e', $n) . str_repeat('o', $n) . 'w'
        : str_repeat('oo', substr_count($a, 'o'))
);

ลองสั้นลง แต่จะไม่ทำงานใน PHP:

#too long -- echo ucfirst($s=$argv[1]).'s go M'.(($o='o'and$n=substr_count($s,'a'))?str_repeat('e',$n).str_repeat($o,$n).'w':str_repeat('oo',substr_count($s,$o)));
#too long -- echo ucfirst($s=$argv[1]).'s go M'.(($o='o'and$f=function($s,$n){return str_repeat($s,$n);}and$n=substr_count($s,'a'))?$f('e',$n).$f($o,$n).'w':$f('oo',substr_count($s,$o)));

=)


1

OCTAVE, 126 , 108

รุ่นแรกที่มีตัวแปรและคำอธิบาย 126:

L="ao"';S={'eo','oo'},e={'w',' '};a=sum(argv(){1}==L,2);b=find(a);disp([argv(){1},' goes m',vec(ones(sum(a),1)*S{b})',e{b}]);

คำอธิบาย: L รู้ว่าสัตว์ตัวไหนมีตัวอักษรตัวไหน S รู้ว่าสิ่งที่พวกเขาทำซ้ำ e รู้ตอนจบ คุณต้องเปิดใช้งาน "การออกอากาศอัตโนมัติ" เพื่อให้สิ่งนี้ทำงานได้ แต่ควรเป็นค่าเริ่มต้นในอ็อกเตฟทั้งหมดที่ฉันเคยใช้ แน่นอนว่ามีวิธีที่สั้นกว่าด้วยตัวอย่างเช่น regexprep คำสั่ง (นิพจน์ปกติที่มีการแทนที่) แต่มีวิธีการดังกล่าวหลายคำตอบอยู่แล้วดังนั้นจะน่าเบื่อ


แก้ไข: การข้ามตัวแปรที่เกิดขึ้นเพียงครั้งเดียวโดยใช้การจัดทำดัชนีออนทาเวียร์ (ไม่ทราบว่ามันเรียกว่าอะไรจริง) และเพิ่ม "i" ตัวแปรสตริงอินพุต:

i=argv(){1};a=sum(i=="ao"',2);b=find(a);disp([i,' goes m',vec(ones(sum(a),1)*{'eo','oo'}{b})',{'w',''}{b}]);

1

JavaScript (ES2015) 78 77

s=>s+'s go M'+(l=s.length-1,w=s[l]<'u',Array(l).join(w?'eo':'oo')+(w?'w':''))

ลองที่นี่: https://jsbin.com/guqaxejiha/1/edit?js,console


ใช้งานไม่ได้กับ Caaat เอาท์พุท 'Caaats Go Meoeoeow และต้องเป็น' Caaats go Meeeooow
Fidel Eduardo López

@ FidelEduardoLópezความท้าทายไม่ได้ระบุคำสั่ง: "จำนวนของ e และ o ใน" Meow "จะต้องตรงกับจำนวนของสระที่พบในคำที่ป้อน"
Pavlo

ฉันเดาว่าคุณพูดถูก .. แมวที่ตลกมีคุณ :)
Fidel Eduardo López

0

Lua, 121 90 ไบต์

121 ไบต์

i=...r="M"o="o"s=i:len()-3if(i:find("w"))then r=r..o:rep(s*2)else r=r..("e"):rep(s)..o:rep(s).."w"end print(i.." go "..r)

90 ไบต์

i=....." go M"o="o"s=#i-7 print(i..(i:find"w"and o:rep(s*2)or("e"):rep(s)..o:rep(s).."w"))

ใช้อินพุตเช่น 'Caats' หรือ 'Coooows' แบบตรงตัวพิมพ์เล็ก - ใหญ่ เนื่องจากไม่มีข้อกำหนดสำหรับอินพุตที่ไม่ถูกต้องเอาต์พุตอาจแปลกสำหรับพูด 'Foxes' หรือ 'Oxen' : P

Ungolfed

i=... .. " go M"
o="o"
s=#i-7
print(i..
         (i:find"w"and o:rep(s*2) or 
         ("e"):rep(s)..o:rep(s).."w")
      )

ปรับปรุง 90 Bytes:แทนที่โครงสร้างถ้าควบคุมตรรกะกับผู้ประกอบการที่ดีที่สุด concatenation iสตริงโดยการผนวกข้อมูลได้มากขึ้นในการประกาศของ i:find("w")วงเล็บลบออก ที่น่าสนใจพอเก็บ"o"ให้กับตัวแปรที่บันทึกไว้คู่ไบต์เมื่อใช้repแต่จะต่อต้านด้วยหรือ"w" "e"ยิ่งคุณรู้จัก


0

Lua: 115 92 89 ไบต์

i=...l=#i-2o="o"io.write(i,"s go M",i:find"a"and("e"):rep(l)..o:rep(l).."w"or o:rep(l*2))

ใช้C[]tหรือC[]wเป็นอินพุต [] = a's หรือ o's อินพุตต่ำจะแปลผลลัพธ์

รุ่นยาว:

i=...   --"C[]t" or "C[]w"
l=#i-2  --length of input -2
o="o"   --shorten usage of "o"
io.write(i,"s go M",i:find"a"and("e"):rep(l)..o:rep(l).."w"or o:rep(l*2)) 

-- if it's a C"a"t concat "s go M" then repeat  --> Cats/Cows go M
-- "e" and then "o" l times and concat else     --> Cats go Meo
-- repeat "o" l*2 times and concat              --> Cows go Moo
-- concat "w" and output evrything              --> Cats go Meow

ตัวอย่างผลลัพธ์:

Caaat --> Caaats go Meeeooow
Cat   --> Cats go Meow
Cow   --> Cows go Moo

แก้ไข: เปลี่ยนไปif then else and orลบทั้งหมดที่ไม่ใช่พื้นที่สตริง

นอกจากนี้คุณแมวลองที่นี่: Execute Lua Onlineแต่ฉันไม่สามารถหาวิธีใช้เทอร์มินัลดังนั้นฉันจึงใส่มันลงในฟังก์ชั่น

แก้ไข: เปลี่ยนการใช้งานของ "O" และลบออก () :findจาก เครดิตไปที่Cyvเพื่อค้นหาการปรับให้เหมาะสมเหล่านั้น เพิ่ม "s" แล้วและเปลี่ยนl=#i-3เป็นl=#i-2

ด้วยอินพุตรวมถึง "s" เพียง 88 ไบต์:

i=...l=#i-3o="o"io.write(i," go M",i:find"a"and("e"):rep(l)..o:rep(l).."w"or o:rep(l*2))

การป้อนข้อมูลจะต้องเป็นแมวหรือวัวไม่ใช่แมววัว และไม่ใช้ประโยชน์ 'cats' output 'cats go Meow' ควรเป็น 'Cats go Meow'
Fidel Eduardo López

@ FidelEduardoLópezฉันเห็นด้วยกับคนแรกไม่ใช่คนที่สอง ตามความหมายของคำแมวและความหมายของคำวัวแมวที่ได้รับอนุญาต แต่ไม่เป็นไปตามคำพูดของการป้อนข้อมูลและcat cowอินพุตอาจใช้ตัวพิมพ์ใหญ่และ cat หรือ Cat ควรจะใช้ค่าได้
CHlM3RA

ตกลง. อินพุตอาจใช้ตัวพิมพ์ใหญ่ใด ๆ แต่ผลลัพธ์ควรเป็นตัวพิมพ์ใหญ่เสมอเช่น C [] ts go M [] w ใช่ไหม?
Fidel Eduardo López

0

Dart , 114 112 110 104 102 100 ไบต์

f(s)=>s+'s go M'.padRight(s[1]=='a'?s.length+4:0,'e').padRight(2*s.length+2,'o')+(s[1]=='a'?'w':'');

ลองออนไลน์!

  • -2 ไบต์: เปลี่ยนวิธีคำนวณออฟเซ็ตของ u เพื่อลดจำนวนการเพิ่ม
  • -2 ไบต์: ย้ายเครื่องหมายบน pasdding แรกไปที่ความกว้างไม่ใช่อักขระ
  • -6 ไบต์: เปลี่ยนการตรวจสอบวัว / แมว
  • -2 ไบต์: กำจัดการกำหนดตัวแปร
  • -2 ไบต์: ลดลงแล้วจำนวนของ parent parent ใน 2 * (s.length + 1)

  • -1

    PHP, 170 164 161 157 ไบต์

    preg_match("/(?i)c([ao]+)/",$argv[1],$e);
    $n=strlen($e[1]);
    $c=$e[1][0];
    $a=($c=="a"?("ew"):("o"));
    echo "M".str_repeat($a[0],$n).str_repeat("o",$n).$a[1]."\n";

    ใช้ตัวพิมพ์ใหญ่ใด ๆ CaAaT, coOOOwสิ่งที่

    v2: ไม่จำเป็นต้องมี [wt] $ แก้ไขถ่าน ct
    v3 ด้วย: ถ่าน ct ผิดทั้งหมดบีบอัด $ a และ $ e การมอบหมาย
    v4: บันทึก 3 ไบต์เมื่อ $ af -> $ a
    v5: บันทึก 4 ไบต์โดยเริ่มต้นมัน (ไม่แสดง)


    ไม่ downvote แต่การส่งออกที่ไม่ถูกต้อง: $argv[0]."s go "หายไป ลองทำเช่นนี้preg_match("/(?i)c([ao]+)/",$x=$argv[1],$e);$a=$e[1][0]=="a"?"ew":"o";echo$x."s go M".str_repeat($a[0],$n=strlen($e[1])).str_repeat("o",$n).$a[1]."\n";(เอาท์พุทที่ถูกต้องและ 151 ไบต์)
    Kenney
    โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
    Licensed under cc by-sa 3.0 with attribution required.