挑战很简单:按顺序打印程序源代码的最后,中间和第一个字符。
假设n
字符的源长度和1索引,中间字符的定义如下:
- 如果
n
是偶数,则打印n/2
-th和n/2 + 1
-th字符。(abcdef == cd
) - 如果
n
为奇数,则打印(n-1)/2 + 1
第-个字符。(abcde == c
)
规则
- 如果没有输入,则以形式打印源代码中的最后,中间和第一个字符
[last][middle][first]
。这将是3-4个字符长。 - 输出不得包含任何尾随空格。但是,如果空白是第一个,中间或最后一个字符,则必须这样打印。
- 源代码必须为
n >= 3
字符长。 - 代码必须包含
>= 3
唯一字符。 - 禁止出现标准漏洞。
- 这是代码高尔夫球,因此以字符为单位的最短解决方案将获胜。
样品
# Form: [code] --> [output]
xyz --> zyx
abcd --> dbca
1 --> # not allowed: too short
abcde --> eca
aaabb --> # not allowed: not enough unique characters
System.out.print("S;pr"); --> ;prS
this is a test --> ts t
123[newline]45 --> 53[newline]1
121
多种语言一样简单。
-
求反的基于堆栈的语言并使用换行符隐式打印,那\n1-
就是三分法。到目前为止,我的搜索没有结果。