程序员的旧测试,取自这里 (注:意大利语)。
沿着一条路(用‘_’表示),有一个魔笛手(用‘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
这是代码高尔夫,所以在任何语言中最短的程序都会获胜。
注意:在这个问题中,我删除了错误消息的要求,因为大多数人都喜欢这样。对不起,已经对错误测试进行了编码的人!
发布于 2020-02-06 13:55:14
发布于 2020-02-06 09:54:33
'_;;\[2enf:使用B国集团的答复算法
'P;;^p<-_+'_;;m{2co}FLf:没有错误检查。
'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'P;;sa2!=qpPif^p<-_+'_;;m{2co}FLf:sa2!=qpPif有错误检查。如前所述,但检查列表是否正确的长度和抛出不可能的行动,如果不是,停止执行。
https://codegolf.stackexchange.com/questions/199026
复制相似问题