挑战
给定一个字符串输入,输出它的已删除版本。
流程
P
r Pr r
o o o
g g g
r r r rogr r
a -> a -> a -> a -> a -> -> -> -> ->
m m m m m
m m m m m mmar m
i i i i i i i mi m
n n n n gn gn gn gn gni mgni
g g Pg Pg roPg roPg roPgmar roPgmar roPgmar roPgmar
- 垂直放置琴弦。
- 在
1
和之间以及(height of the column of characters) - 1
一个随机方向(左或右)之间选择一个随机整数。 - 在该方向上旋转该数目的字符(如果没有占用这些空格,请转到步骤4;否则,请回到步骤2)。
- 让那些角色由于重力而掉落。
- 重复直到字符列的高度最多
1
大于其旁边的列的高度(即无法进一步拆除(“步骤2-4”)该列)。 - 如果还有另一列字符比
1
其周围的一个或多个周围字符的字符高(即可拆卸),请重复拆卸该列,直到不再可拆卸为止。如果有多个可拆列,则完全拆掉最高的列(如果有多个最高列,则彻底拆掉最左边的列)。 - 重复进行,直到所有列都无法删除。
如果输入中有空格字符,请首先将其全部删除。
C
o
d
e -> oC -> -> ...
de
G G G
o o o
l l l
f f defoC
规则
- 禁止出现标准漏洞。
- 尾随换行符是允许的。
- 您的程序可能会打印或返回一个字符串/等效字符串。
- 输出必须是不确定的(除非输入不可拆卸)。
这是代码高尔夫球,因此在其语言中具有最小字节数的提交将获胜!
1
我会怀疑这里是否真的需要随机
—
Keyu Gan
@KeyuGan我认为,如果人们不得不选择固定数量的字符并左右交替,挑战将是微不足道的。
—
JungHwan Min
我们仍然可以说4是随机的,并且通过掷骰子返回
—
我的代词是monicareinstate
@someone
—
JungHwan Min
4
将使输出具有确定性,即不是“随机”。编辑了规则以使其明确。
@someone你是因为XKCD在4指的?
—
Giacomo Garabello