输入:
1
X
X
X
X XX XXXXXX X X X
X XX XXXXXX X X X
XXX X XX XXXXXX X X X
XXX X XX XXXXXX X X X
输出:
X.
X..
X...
X.... XX. XXXXXX. X.X.X.
X..... XX.. XXXXXX.. X.X.X..
XXX. X......XX... XXXXXX... X.X.X...
XXX.. X......XX....XXXXXX.... X.X.X....
输入:
2
XX
XX
XX
XX
XX
XX XX
XX XX
XX XX
XX XX
输出:
.XX
..XX
...XX
....XX
.....XX
..XX..XX
...XX..XX
....XX..XX
.....XX..XX
规格:
- 您必须作为输入
- 一个标志,指示光线是来自左上角还是右上角。只要两个标志都是整数,它可以是
1
或2
,-1
或1
,0
或65536
,或者任何您方便的名称。 - 由
X
或组成的行,所有字符的长度相同(即用填充
)
- 所有
X
s要么位于最后一行,要么位于其X
下(表示没有浮动建筑物)
- 所有
- 一个标志,指示光线是来自左上角还是右上角。只要两个标志都是整数,它可以是
- 您必须输出添加了阴影的行(建筑物)。这可以通过以下过程完成:
- 如果光线来自左上角,请绘制一个
.
s的直角三角形,其高度和宽度与建筑物的高度相同,从其右边缘上方的一个空间开始向右移动。 - 否则,如果它是从右上角开始的,则执行相同的操作,但要从其左边缘上方的一个空间开始并指向左侧。
- 请记住,不要
X
通过将s更改为来改变.
s;保持原样。 - 阴影总会有“空间”,即,如果在末端有3层高的建筑物,则在其后至少有3处填充空间。
- 如果光线来自左上角,请绘制一个
- 这是代码高尔夫球,所以最短的代码(以字节为单位)将获胜!
@Jan是的,是的,可以。您甚至可以使用
—
门把手
potato
和while(1){}
。如问题中所引用的,“一切方便”。
:(我本打算在(.NET风格的)正则表达式中解决此问题,但我认为我发现了一个无法解决的错误
—
Martin Ender 2014年
Regex.Replace
……我现在有两个问题吗?
@Doorknob有人会滥用此规则,只是将其整个代码都包含在输入中。
—
ɐɔıʇǝɥʇuʎs
@Synthetica 这是“标准漏洞”之一。
—
门把手
{}
和{-1*}
作为标志值吗?