Mèo kêu meo meo"


31

cat đi "meo"

Chúng ta đều quen thuộc với khái niệm của một catchương trình. Người dùng gõ một cái gì đó vào, nó được trả lại cho người dùng. Dễ dàng. Nhưng tất cả các catchương trình tôi đã xem cho đến nay đã bỏ lỡ một sự thật: cat"Meow". Vì vậy, nhiệm vụ của bạn là viết một chương trình sao chép tất cả STDINvào STDOUT UNLESS đầu vào cat, trong trường hợp đó chương trình của bạn sẽ xuất ra cat goes "Meow".

Chấm điểm

Đây là , vì vậy điểm của bạn là số byte của bạn, với một vài sửa đổi:

  • Nếu chương trình của bạn hoạt động cho bất kỳ động vật bổ sung nào ngoài cat(ví dụ cow: cow goes "Moo"), cho mỗi động vật bổ sung: -10
  • Nếu chương trình của bạn không sử dụng từ "cat": -15
  • Nếu chương trình của bạn phản hồi foxvới "Con cáo nói gì": -25

Động vật và âm thanh đi cùng nhau:

cow goes moo duck goes quack sheep goes baa bees go buzz frogs go croak

Bất cứ điều gì khác trong danh sách này được cho phép.

Quy tắc

  • Áp dụng sơ hở tiêu chuẩn
  • Bạn không được viết bất cứ điều gì cho STDERR
  • Bạn có thể sử dụng dấu ngoặc đơn / không dấu ngoặc kép thay vì dấu ngoặc kép.

Bảng xếp hạng

Dưới đây là Stack Snippet để tạo cả bảng xếp hạng thông thường và tổng quan về người chiến thắng theo ngôn ngữ.

Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:

## Language Name, N bytes

nơi Nlà kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:

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

Nếu ở đó bạn muốn bao gồm nhiều số trong tiêu đề của mình (ví dụ: vì điểm của bạn là tổng của hai tệp hoặc bạn muốn liệt kê riêng các hình phạt cờ phiên dịch), hãy đảm bảo rằng điểm thực tế là số cuối cùng trong tiêu đề:

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

Bạn cũng có thể đặt tên ngôn ngữ thành liên kết sau đó sẽ hiển thị trong đoạn trích bảng xếp hạng:

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


16
Đối với tiền thưởng: Con cáo nói gì?
Stewie Griffin

1
Đối với phần thưởng: mỗi động vật bổ sung có thể là số ít hay "ong" luôn phải ở dạng số nhiều, như trong danh sách của bạn?
Chương trìnhFOX


1
Thay vì dấu ngoặc kép, bạn có thể sử dụng những cái duy nhất? Ngoài ra, bạn có thể xuất ra stderr?
Màu xanh

Câu trả lời:


17

Pyth, 231-255 = -24 byte

-24 * 10 động vật phụ, -15 không có chuỗi "mèo"

pzI}zJv.Z"xÚ]Arà E¯âñMOÛ|°
Ø¢mÞ½`&ÉR¯'_ãPÍm1;ñÝ|,F ¹×z#½öÂ÷ÜAPúõMh#Ì©UOC *CѰk%¹ö´qÌzj,å<&{jàRFÖ(¥s    ñ`GÂ:çkô#ù\M+üqíéaw ÑuW6Lã,¶w/'87ö×_r]¢:jkz»ÚFÙ¦ÈcÅËØíëûÖOa¿Þµ´6 ø¡ãEþþ:"jk(" goes "N@JzN

Liên kết đến mã

Mã giả

Auto assign z to input
print z
J = decompress animal-sound dict
if z in J:
    print " goes ", J[z], '"'

Động vật nó biết:

{'hare': 'squeak', 'seal': 'bark', 'lion': 'growl', 'rook': 'hiss', 'sheep': 'baa', 'hamster': 'squeak', 'moose': 'bellow', 'grasshopper': 'chirp', 'rhinoceros': 'bellow', 'cat': 'meow', 'tiger': 'growl', 'stag': 'bellow', 'crow': 'caw', 'okapi': 'bellow', 'snake': 'hiss', 'cicada': 'chirp', 'badger': 'growl', 'dog': 'bark', 'cricket': 'chirp', 'tapir': 'squeak', 'bird': 'chirp', 'sparrow': 'chirp', 'lamb': 'baa', "frog": "croak", "raven": "croak"}

16
Tôi cảm thấy như tiền thưởng nên là -10%, không phải -10 byte. Điều đó sẽ mang lại một sự trở lại giảm dần để ngăn chặn lạm dụng như thế này. (Và con số đó được nhân lên 10% mỗi lần, không phải 10% số tiền gốc được thêm vào, nếu không, bạn chỉ cần 10 con vật để có điểm 0 cho dù mã đó dài bao nhiêu ...)
Darrel Hoffman

@DarrelHoffman Tôi sẽ ghi nhớ điều đó cho tất cả các thử thách trong tương lai.

Chà, bạn thành công khiến đầu tôi nổ tung, và tôi không còn biết con cáo nói gì nữa. +1
kirbyfan64sos

Con quạ đi vẹo?
Bạch tuộc ma thuật Urn

@carusocomputing Theo wikipedia thì không. Tôi nghĩ họ squalktự đi
Blue

7

TeaScript , 29 - 15 = 14 byte

Không sử dụng chuỗi cat.

xr(/^c\at$/,'$& goes "Meow"')

"Con cáo nói gì" (chiều dài = 21) dài hơn phần thưởng có giá trị.


Phần thưởng con cáo bây giờ là xứng đáng!

5

CJam, 12 byte

q_:)"dbu"=" goes \"Meow\""*

Chương trình dài 27 byte byte và không sử dụng từ cat( -15 byte ).

Hãy thử nó nội tuyến trong trình thông dịch CJam .

Làm thế nào nó hoạt động

q_                e# Read all input and push a copy.
:)                e# Increment all code points of the copy.
"dbu"=            e# Push 1/0 if the result is/isn't "dbu".
" goes \"Meow\""* e# Repeat the string that many times.

10
Tôi thích mặt cười:)
ETHproductions

4

APL (Dyalog) , 28 - 15 = 13 byte

{⍵,' goes "Meow"'/⍨⍵≡⌽'tac'}

Đầu vào theo sau goes "Meow"nếu đầu vào tương đương với tacđảo ngược.

Hãy thử trực tuyến!

{... } chức năng ẩn danh

⌽'tac' đảo ngược chuỗi (để nhận phần thưởng -15 bằng cách tránh các ký tự cat)

⍵≡ Boolean cho dù đối số có giống với đó không

' goes "Meow"'/⍨ sử dụng để lọc chuỗi (tức là trả về chuỗi rỗng nếu sai)

⍵, nối vào đối số



3

JavaScript, 45 - 15 = 30/264 - 235 = 29

alert((s=(d='MeowBuzzSongMooMooCawBarkQuackCroakHissOinkBaaSingRoarLowCooCawBarkBaaHissCryRoarSingC\x61tBeeBirdCattleCowCrowDogDuckFrogHorseHogLambLarkLionOxPigeonRookSealSheepSnakeSwanTigerWhale'.split(/(?=[A-Z])/))[d.indexOf(i=prompt())-23])?i+' goes "'+s+'"':i)

Nhược điểm: bạn phải viết tên của con vật bằng chữ cái đầu tiên viết hoa và phần còn lại bằng chữ thường. Nhìn bên dưới để biết phiên bản khác khắc phục điều này. Phiên bản này thoát khỏi acon mèo trong \x61và bao gồm mã cho 22 động vật bổ sung từ danh sách này (tất cả các động vật được phép có các từ đủ ngắn để đáng giá):

ong buzz 7
tiếng chim hót 8
súc Moo 9
moo bò 6
con quạ caw 7
vỏ cây chó 7
vịt quạc 9
ếch tiếng kêu 9
ngựa rít 9
con heo ỉn 7
cừu trừu kêu 7
Lark hát 8
con sư tử gầm 8
con bò thấp 5
pigeon coo 9
rook caw 7
vỏ con dấu 8
con cừu baa 8
con rắn rít 9
con thiên nga khóc 7
con hổ gầm 9
con cá voi hót 9

(cảm ơn bạn tôi đã giúp tôi thực hiện công việc tẻ nhạt này)

Mã bị đánh cắp:

data = 'MeowBuzzSongMooMooCawBarkQuackCroakHissOinkBaaSingRoarLowCooCawBarkBaaHissCryRoarSingC\x61tBeeBirdCattleCowCrowDogDuckFrogHorseHogLambLarkLionOxPigeonRookSealSheepSnakeSwanTigerWhale'.split(/(?=[A-Z])/);

input = prompt();
index = data.indexOf(input);
sound = data[index-23];
result = sound ? input + ' goes "' + sound + '"' : input;
alert(result);

Phiên bản đầu tiên, 45 byte - 15 phần thưởng = 30

alert((i=prompt())=='\x63at'?i+' goes "Meow"':i)

Vâng tôi biết. Tôi đã đi từ 30 đến 29 với TẤT CẢ công việc làm thêm đó. Thật là vui

Phiên bản cho phép nhập đầy đủ chữ thường, 294 byte - Phần thưởng 235 = 59

alert((s=(d='MeowBuzzSongMooMooCawBarkQuackCroakHissOinkBaaSingRoarLowCooCawBarkBaaHissCryRoarSingC\x61tBeeBirdCattleCowCrowDogDuckFrogHorseHogLambLarkLionOxPigeonRookSealSheepSnakeSwanTigerWhale'.split(/(?=[A-Z])/))[d.indexOf((i=prompt())[0].toUpperCase()+i.slice(1))-23])?i+' goes "'+s+'"':i)

Tôi cũng đã thử loại bỏ vỏ khỏi mảng dữ liệu .join().toLowerCase().split(',')nhưng cuối cùng nó chỉ lấy được 297 ký tự.


chỉnh sửa: dấu ngoặc kép cố định và vốn trên meow (mặc dù câu hỏi không phù hợp với thủ đô)
Domino

Và ... công việc của tôi ở đây đã hoàn thành, chứng minh rằng tiền thưởng -10 là vừa đủ :)
Domino

3

JavaScript, 81 - 20 - 15 = 46 byte 50 - 15 = 35 byte

(o=prompt()=="ca"+"t")&&o+=' goes "Meow"';alert(o)

Bạn có thể thả dấu ngoặc kép quanh Meow .
otherdave

không, đó thực sự là một phần của câu hỏi
Domino

Làm thế nào về 'c\at'thay vì 'ca'+'t'?
Gustavo Coleues

alert({'c\at':'c\at goes "Meow"',fox:'What does the fox say'}[a=prompt()]||a). Tại sao thậm chí không thả cảnh báo? Nó đã trả về kết quả cho bàn điều khiển.
Gustavo Coleues

2

GNU sed, 37 - 15 = 22 byte

sed -r 's/^(\x63at)$/\1 goes "Meow"/'

sed '/ ^ c [a] t $ / s / $ / đi "Meow" /' lưu một vài byte. Nhưng phần thưởng 5% mới là vô giá trị so với phần thưởng 15 byte ban đầu khi không có "con mèo".
Glenn Randers-Pehrson

@ GlennRanders-Pehrson Không còn nữa!

2

MATLAB, 58 - 15 = 43 byte

Khá đơn giản, với phần thưởng cho việc không sử dụng catmã:

x=input('');if isequal(x,'dbu'-1);x=[x ' goes "Meow"'];end;x

Đầu vào phải được đưa ra bên trong dấu ngoặc đơn : ' '.


Ở dạng hiện tại, điều này không xuất ra chính xác nếu 'cat' được đưa ra làm đầu vào. Bạn có thể đã quên x = trong câu lệnh if.
slvrbld

Nhưng tôi cũng sẽ cho bạn một mẹo để giành lại các byte này cộng thêm 2: thay thế toàn bộ câu lệnh if của bạn bằng: if ~ any (x-'dbu '+ 1)
slvrbld

@slvrbld, cảm ơn vì đã chú ý, nó đã xảy ra sau khi tôi chỉnh sửa. BTW: đề xuất của bạn không hoạt động đối với các đầu vào không có 3 ký tự. =)
Stewie Griffin

Ah, bạn đã đúng. Tôi đã quá tập trung vào con mèo và con cáo và quên đi phần còn lại.
slvrbld

2

Javascript, 117 byte

for(c=0,s="bee.Buzz.bird.Song.c\at.Meow.cow.Moo.crow.Caw.dog.Bark.oxen.Low.owl.Who.rook.Caw.sheep.Baa.swan.Cry".split('.'),p=prompt(),a=![];c<s.length;c+=2){if(p==s[c])a=c}if(!a)alert(p=='fox'?'What does the fox say':p);else alert(s[a]+' goes "'+s[a+1]+'"')

Tôi chắc chắn đã không chiến thắng ở đây, nhưng tôi đã bao gồm rất nhiều động vật thêm.

Javascript, 31 byte

p=prompt();alert(p=='c\at'?p+' goes "Meow"':p)

2

HALT , 71 - 15 = 56 byte

1 IF "cat" 2 ELSE 3
2 TYPE "MEOW";HALT
3 SET 0;NEXT
4 INCREMENT;STORE 0

HALT là ngôn ngữ tôi (@Downgoat) tạo ra được thiết kế để xử lý chuỗi, vấn đề duy nhất là nó hơi dài

Định dạng

1              IF "cat" 2 ELSE 3
2 TYPE "MEOW"; HALT
3 SET 0      ; GOTO 6
4 INCREMENT  ; STORE 0

2

Python 3, 81 70 55 46 - 15 = 31 byte

Cảm ơn Stewie Griffin đã tiết kiệm 15 byte

Cảm ơn grc đã lưu 8 byte.

Không sử dụng chuỗi catcho -15 byte.

y=input()
print(y+' goes "Meow"'*(y=="ca""t"))

1

JavaScript, 48 - 15 = 33 byte

Sử dụng \x61như là một thay thế cho atrong cat.

i=prompt();alert(i=="c\x61t"?i+' goes "Meow"':i)

1

Perl, 46 - 15 = 31

$_=join'',<>;s/(?<=^ca)t$/t goes "Meow"/;print

1

Ruby, 49 46 50 - 15 = 35 byte

Tôi đoán khá đơn giản. Không dùng mèo.

$<.map{|l|puts l==?c+'at
'??c+'at goes "Meow"':l}

Chỉnh sửa: Cảm ơn @ w0lf vì đã lưu 3 byte!


rõ ràng là không cần chop: ideone.com/lTpShD
Cristian Lupascu

@ w0lf "cat \ n"! = "cat" (Ít nhất là nó không hoạt động với tôi) Tôi đoán rằng STDIN của ideone không có một dòng mới nào
Peter Lenkefi

Đủ công bằng, tôi thấy ví dụ của tôi sai ở đâu. Sau đó, bạn có thể xem xét làm điều này để rút ngắn mã.
Cristian Lupascu

@PeterLenkefi, vẫn còn một vài con mèo trong mã của bạn ... Bạn đã quên cập nhật nó hay ...?
Stewie Griffin

@StewieGriffin Chết tiệt tôi đã làm! Đa nhiệm của tôi không phải là hàng đầu ngày hôm nay. Tuy nhiên trong 5 phút tôi sẽ cập nhật lại.
Peter Lenkefi

1

PHP, 1204 - (10 * 64) - 15 - 20 = 529 byte

<?php $i = $argv[1];$s = json_decode(gzuncompress(hex2bin("78da555351b2db200cbc8a27dfee057a1b192bc018104f40dcbccebb7b25d9499d8fcc588b10abddcddf1b64e4e8a04c3bd1eac86db7df3774e136dfa0744c5451805688bb400bac1e5900cfb42703ba1e3bc6e3ce82dabe8cef6f2d22af52b910b95ad93b72d173a22c8083f4d0f63bc75c131aa2e332d2ae45886e43ed7769082f438afc52027df46b20182af457b83c24537ad2c199484b99f6fe669dd9afcd6cc70ef67972a03bb8c10915abb12aa995bc7206deac48555818a9e80ea46cf8142020fe0aa0ccd761327e0db00e046f745426d0c531610d22af609d47aea8dade91d998ad447aebcef6aef0b32d7d64b8df4ddd84a0173c436b816a35475efbf8110bc254a3bf6a1420b76e7d1788f1a346ceb14f8e61b98c0bc44ddb0a46afe284582b55ea9087e1af2004236b3999278a452726c8cb8bef3c2d0086b14ad362f1f3b4032fe67b8aa59cae88742744aab26ccff3f47a2583af11ad0f344c0a1119910553b2d864929562270577b14a87d10635ea351a3e0895572ffd11f0f8ac0867fadf36898668249c65a732448e387de481c1c96931272598863c8ed09ec6b17020874c5792ac1e5bea8ee234c7c238df1a42faff449360552b55c05660d3d5426c4dcb0a7c26f874ac75f0d7a7da0e079da7145d74f848418fc71f5a75d652947a4e1edd469715fae023e29e96c3b0c748027e847a87c4ef4cc893820438722f666bc9a6cb69facf3f28e87499")));echo array_key_exists($i,$s)?"$i goes {$s->$i}":($i=="fox"?"What does the $i say":$i);

Tôi sử dụng một mảng jz được mã hóa gson nén của âm thanh động vật. Điều này có nghĩa là nó hoạt động với tất cả 65 động vật được phép, nhưng kịch bản của tôi rất lớn. Cũng làm việc với cáo và không có từ mèo trong đó.


1

MATLAB, 46 byte

regexprep(input(''),'^cat$','cat goes "Meow"')

Phải thừa nhận tầm thường. Đầu vào phải được đưa ra trong dấu ngoặc đơn.


Tôi không chắc chắn, nhưng tôi nghĩ ans = .. nói chung là không được chấp nhận, nếu thách thức là in một cái gì đó. Tôi không chắc đó có phải là sự đồng thuận hay không, nhưng nó khá phổ biến để sử dụng disphoặc một cái gì đó tương tự.
Stewie Griffin

+1 mặc dù, vì ngắn hơn của tôi =)
Stewie Griffin

1

Chùm tia , 208 206 - 15 = 191 byte

Không phải là một mục cạnh tranh, nhưng một chút thú vị để làm. Nó kiểm tra đầu tiên cho các chữ cái của đầu vào cat. Nếu nó không khớp, nó sẽ chuyển sang chương trình mèo tiêu chuẩn. Nếu nó phù hợp, nó sẽ nốigoes "Meow"

'''''''''>`\/n@>`)'''>`++\
/++++++++++/r /SP''+(++++/
\+)'PSrn@--S/ \rn@`>`)rn'''''>`++++++)++@P'p++++@'p-----@`p++@'p-@``p@++@'''''>`+++++++++)--@'p++@'p-----@++++++++@``p++@H
/@<  (`<     < `<    ''<
>ruH

1

Java = 222 byte (đã nén)

public class A {public static void main(String[] args) {Scanner a=new Scanner(System.in);for(;;){String b=a.nextLine();if(!b.equalsIgnoreCase("cat"))System.out.println(b);else {System.out.println("meow");System.exit(0);}}}

Hoặc tôi có thể giải nén nó.

Mẻ = 52 byte

set /p k=
if "k"=="cat" (echo cat) ELSE (echo %k%)

1

Javascript: 48 ký tự, 48 byte

function(s){return (s=="cat")?"cat goes meow":s}

Kiểm tra

=>"Chó"

<="Chó"

=>"con mèo"

<="mèo kêu meo meo"


Làm tốt lắm! Bạn có thể thả dấu ngoặc đơn xung quanh s=="cat". Ngoài ra, chuỗi của con mèo được cho là cat goes "Meow"như vậy, 'function(s){return s=="cat"?'cat goes "Meow"':s}là hoàn toàn hợp lệ.
Sản xuất ETH

Nếu bạn muốn tiết kiệm hơn nữa, bạn có thể sử dụng ES6: s=>s=="cat"?s+' goes "Meow"':s(30 byte)
ETHproductions 8/11/2015

@ETHproductions OOooh, thật tốt! Tôi không biết loại cú pháp đó, có lẽ là một liên kết?
Fuzzyzilla

@Fuzzyzilla đó là một phần của phiên bản JavaScript mới có tên "ES6", liên kết đến cú pháptổng quan chức năng mới . Đây cũng là các mẹo dành cho ES6 và các mẹo dành cho JavaScript nói chung
Downgoat

1

Haskell, 52-15 = 37 byte

c"\99at"="\99at goes \"Meow\""
c s=s
main=interact c

Sử dụng \99như là một thay thế cho c trong mèo cat để có được phần thưởng 15 byte.


1

O , 22 16 14 byte

29 byte - 15

Q "tac" `J = J" đi \ "Meow \" "+ Q?

Nó dài và có thể được chơi gôn nhiều hơn



1

Pyth, 82-95 = -13 byte

+z*}zKc."atÜiÃ'4ãl¾Eªîiû<-È&e"\jjk[d"goes"dNr@c."bw««[áÅ3ÏB"\c%x`Kz3 3N

Cuối cùng tôi cũng đã có được để chuyển đổi mục nhập Python 2 chức năng mới của mình sang Pyth. Nó không đánh bại ứng cử viên hàng đầu. Hóa ra việc kết hợp nhiều động vật với nhau thành một từ điển lớn hơn làm giảm điểm nhanh hơn so với việc khéo léo liên kết động vật với âm thanh. Điều này hỗ trợ 8 động vật ngoài mèo: tê giác, okapi, nai, sư tử, hổ, lửng, hà mã và hươu.

Dùng thử trực tuyến


1

Japt, 25-15 = 10 24-15 = 9 byte

Lần đầu thử Japt:

N¦`¯t`?N:`¯t goƒ \"´ow\"

ƒnên được thay thế bằng ký tự không thể in được U+0083 Biên dịch thành:

N!="cat"?N:"cat goes \"meow\""

Giải pháp cũ:

N¥`¯t`?`¯t goƒ \"´ow\"`:N

Hãy thử nó ở đây


Khá đẹp! Xin lỗi, dấu gạch chéo ngược là cần thiết, tôi nghĩ rằng tôi đã sửa nó.
Sản xuất ETH

Vì mã chứa một ký tự không thể in được, mà Markdown loại bỏ, bạn có thể vui lòng thêm một liên kết không?
Sản phẩm điện tử

Đã thêm liên kết, tại sao không U+0083nhận được thay thế U+0192hoặc ƒkhi bạn chạy đoạn mã này:"\u0083".charCodeAt()
Người dùng chung

Tôi không có đầu mối. Tôi dường như không thể tái tạo điều này.
Sản phẩm ETH

1

Pyth, 26-15 (không có "con mèo") = 11 byte

Chương trình Pyth đầu tiên của tôi!

Iqz_"tac"+z" goes meow";Ez

Hãy thử nó ở đây

Giải thích

   _"tac"                   # Reverse the string "tac"
Iqz                         # If the input equals "tac" reversed
         +z" goes meow";    # Append " goes meow"
                        Ez  # Else, use the input.
                            # Implicit: print the input, if it's used.

1

C ++ 11, 316 - 11 * 10 - 15 = 191 byte

#include <map>
#define t(a,b){#a,#b},
using s=std::string;int main(){std::map<s,s>m{t(cow,moo)t(crow,caw)t(dog,bark)t(hog,oink)t(lark,sing)t(lion,roar)t(oxen,low)t(rook,caw)t(seal,bark)t(sheep,baa)t(swan,cry){"c""at","meow"}};s l;while(int i=~getchar())l+=~i;printf("%s",(m[l]==""?l:l+" goes \""+m[l]+'"').c_str());}

Biên dịch tốt với VisualStudio. GCC muốn tôi #include <string>#include <cstdio>. Nó sẽ ngắn hơn nếu tôi không đi nhận tiền thưởng, nhưng tôi vẫn hy vọng tác giả sửa đổi tiền thưởng. Tôi không thể nghĩ về ngôn ngữ trong đó định nghĩa cow -> moohay cách đó ngắn hơn 10byte. Mỏ chi phí khai thác 3+key+valuecho động vật bổ sung và 22+17byte phẳng để xác định cấu trúc và như vậy.

Ung dung

#include <map>

#define t(a, b) { #a, #b },
using s = std::string;
int main()
{
    std::map<s, s> m{
        t(cow,moo)
        t(crow,caw)
        t(dog,bark)
        t(hog,oink)
        t(lark,sing)
        t(lion,roar)
        t(oxen,low)
        t(rook,caw)
        t(seal,bark)
        t(sheep,baa)
        t(swan,cry)
        { "c""at", "meow" }
    };
    s l;
    while (int i = ~getchar())
        l += ~i;
    printf("%s", (m[l] == "" ? l : l + " goes " + m[l]).c_str());
}

"t (quạ, caw)" có độ dài 11. Vì vậy, loại bỏ điều đó thành "t (thiên nga, khóc)" sẽ giảm 14 byte. Và phải thừa nhận làm cho nó ít vui hơn :(
Noodle9

@user, Như tôi đã nói, tôi vẫn hy vọng tác giả sửa đổi tiền thưởng.
Zereges

Bạn nên nêu C ++ 11 trong tiêu đề. Python 2 và 3 cũng luôn được ghi chú riêng biệt. Trong khi usingkhông phải là vấn đề lớn, danh sách khởi tạo là.
Karl Napf

@KarlNapf Cảm ơn bạn đã chỉ ra điều đó.
Zereges

Bạn cũng có thể thay đổi #include <map>thành #import<map>-2 byte. Không gian trước <có thể được bỏ qua và #importđưa ra một số cảnh báo nhưng được chấp nhận là GCC và MSVC
Karl Napf

0

Pyth, 31 - 15 = 16 byte

Bạn có thể thử nó ở đây

In+C99"at"zz;E+z" goes \"Meow\"

Giải thích:

I                                # If-statement
 n                               # not equal
  +C99"at"                       # Adds the char 99 with the string "at" = "cat"
          z                      # z, the user input
           z                     # Print the user input
            ;                    # Ends all open parentheses
             E                   # Else-statement
              +z" goes \"Meow\"  # Adds ' goes "Meow"' to z and prints the result

1
C99có thể được thay thế bằng \C. Vẫn còn +\C"at", vì vậy bạn có thể giữ tiền thưởng.
vỗ tay

0

C, 76 byte

main(){char a[99];gets(a);printf("%s%s",a,strcmp(a,"cat")?"":" goes meow");}

0

PHP, 70-15 = 55 byte

<?=$l=rtrim(stream_get_contents(STDIN),~òõ),$l==~œž‹?~ߘšŒßݲšˆÝ:'';

(được lưu dưới dạng ISO-8859-1)

Sử dụng các hằng số không xác định đảo ngược dưới dạng chuỗi ký tự:

  • ~òõ == "\r\n"
  • ~œž‹ == 'cat'
  • ~ߘšŒßݲšˆÝ == ' goes "Meow"'

Tất cả mọi thứ được kết hợp trong một tuyên bố tiếng vang duy nhất, viết tắt với <?=

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.