首页
学习
活动
专区
圈层
工具
发布

魔笛手
EN

Code Golf用户
提问于 2020-02-06 08:58:58
回答 9查看 2.5K关注 0票数 28

程序员的旧测试,取自这里 (注:意大利语)。

沿着一条路(用‘_’表示),有一个魔笛手(用‘P’表示)和几只老鼠(由'o‘和'~’两个字符表示,分别表示小啮齿动物的头和尾)。

写一个程序,打印出有多少只老鼠正朝笛人走去,有多少只老鼠离开了他。

输入是一个字符串,输出是两个数字,第一个是指向Piper的老鼠数,第二个是离开Piper的老鼠数。

输入也可以是一个或多个字符的列表,输出一个向量或两个数字的列表。您可以假设输入总是正确的。

这两个程序以及函数都是允许的。

示例:

输入:__o~P_o~~o

输出:1 2

输入:__P~oo~o~_o~~o__

输出:3 2

输入:~oPo~

输出:2 0

输入:o~P~o

输出:0 2

这是代码高尔夫,所以在任何语言中最短的程序都会获胜。

注意:在这个问题中,我删除了错误消息的要求,因为大多数人都喜欢这样。对不起,已经对错误测试进行了编码的人!

EN

回答 9

Code Golf用户

发布于 2020-02-06 13:55:14

Python 2,47字节

G‘s红宝石答案港。

代码语言:javascript
复制
lambda s:map(s.replace('_','')[::2].count,'~o')

在网上试试!

票数 6
EN

Code Golf用户

发布于 2020-02-06 09:54:33

滑稽表演,11字节

代码语言:javascript
复制
'_;;\[2enf:

在网上试试!

使用B国集团的答复算法

Burlesque,24字节

代码语言:javascript
复制
'P;;^p<-_+'_;;m{2co}FLf:

在网上试试!

没有错误检查。

代码语言:javascript
复制
'P;;   # Split at P
^p<-   # Reverse those following the piper
_+     # Rejoin
'_;;   # Remove all road
m{2co} # Split each into pairs (i.e. mice)
FL     # Flatten array
f:     # Count mice

Burlesque,44字节

代码语言:javascript
复制
'P;;sa2!=qpPif^p<-_+'_;;m{2co}FLf:sa2!=qpPif

在网上试试!

有错误检查。如前所述,但检查列表是否正确的长度和抛出不可能的行动,如果不是,停止执行。

票数 2
EN

Code Golf用户

发布于 2020-02-06 12:41:01

05AB1E,17字节

代码语言:javascript
复制
'P¡`RJ'_K2ô„~o‚¢

在网上试试!

票数 2
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/199026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档