在一个拥挤的场景中找到圣诞老人和他的驯鹿。
输入值
输入将在STDIN上,并且将是可变长度的,相等但可变的字符行。如果S
场景中有圣诞老人(由角色表示),则他的礼物袋(由角色表示P
)将位于与他相邻的位置之一(水平,垂直或对角线)。他的驯鹿(每个由字符代表R
)都将在他周围的5x5正方形内。如果S
场景中出现的礼物没有礼物袋,或者没有至少四只驯鹿陪伴,则不是圣诞老人。
输出量
场景清除了所有混淆(所有非圣诞老人,非礼物,非驯鹿角色替换为空格),显示了圣诞老人,他的礼物袋和他的驯鹿-所有其他角色均应替换为空格。如果圣诞老人和他的驯鹿不在现场,则将其输出不变。可以保证只有一种解决方案,因此有效的圣诞老人不会超过一个,他也不会携带超过一袋的礼物。
例子
在这些例子中,我只是用*
字符可以很容易地看到S
,P
和R
人物,但是你的程序应该能够从处理任何ASCII字符!
来`
(33至96)。为了避免混淆,我省略了小写字母和大写字母。
输入:
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
输出:(忽略点,它们将迫使页面显示空白行)
.
.
.
R
P
S
R
R R
.
.
.
.
输入:(驯鹿不足)
***********
***********
***********
***********
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
输出:
***********
***********
***********
***********
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
输入:(无礼物袋)
***********
***********
***********
*****R*****
***********
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
输出:
***********
***********
***********
*****R*****
***********
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
输入:(表示距离不够近)
***********
***********
***********
*****R*****
***********
*****S*P***
*****R*****
****R**R***
***********
***********
***********
***********
输出:
***********
***********
***********
*****R*****
***********
*****S*P***
*****R*****
****R**R***
***********
***********
***********
***********
输入:(其中一只驯鹿不在圣诞老人周围5x5正方形内)
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R******
*******R***
***********
***********
***********
输出:
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R******
*******R***
***********
***********
***********
测试脚本
就像我过去的一些问题一样,我再次选择了一些最初由Joey和Ventero创建的测试脚本,以针对该问题提供一些测试用例:
用法: ./test [your program and its arguments]
纯文本版本的测试以供参考:纯文本
奖赏
我可以验证符合规格,通过测试并且显然已经尝试过打高尔夫球的每条条目都会收到我的赞誉(因此,请在回答中提供使用说明)。截止到2013年12月31日的最短解决方案将被接受。