如果满足以下条件,我们将一个非空字符串列表称为台面:
- 每个列出的字符串都是非空的,并且仅使用第一个字符串中出现的字符。
- 每个连续的字符串都比前一个字符串长一个字符。
- 在列表中没有字符串是一个序列列表中的任何其他字符串。
术语“ mesa”来自这样的可视化(其中x
s是各种字符):
xx..x
xx..xx
xx..xxx
.
.
.
xx..xxx..x
注意:这是一个数学事实,只有有限的台面以给定的字符串开头。注意子序列与 子字符串之间的区别;例如,“安娜”是“香蕉”的子序列(但不是子字符串)。
挑战:
- 编写最短的程序,该程序采用任意的非空字母数字输入字符串,并输出以该字符串开头的台面数目。
输入(stdin):
- 任何非空的字母数字字符串。
输出(标准输出):
- 以输入字符串开头的台面数量。
得分:
- 获胜者是字节数最少的程序。
台面示例
只有一个台面以a
:
a
只有一个台面以aa
:
aa
许多台面开始于ab
:
ab ab ab ab (and so on)
baa aaa bbb
bbba bbaa
baaaa
aaaaaa
@mellamokb-如果它们完全不同,它们就是不同的mesas。例如
—
res 2012年
ab
,ab/baa
,ab/bbb
,ab/bbb/bbaa
,ab/bbb/bbaa/baaaa
,ab/bbb/bbaa/baaaa/aaaaaa
是不同的台地。
@mellamokb-您提出了其他好的问题;例如,从给定的字符串开始有多少个最大长度的台面,以及最大长度是多少。这些问题的其他版本将修复给定大小的字母(将以字母大小作为输入),并考虑仅使用给定字母表中的字母的所有台面(在没有条件#1的情况下重新定义)-同样,数量有限。
—
res 2012年
ab
,bbb
如台面只是在第二项停止。那有效吗?还是总是必须使它们尽可能长?此外,如果是多个可能的重排nth
项(如baa
,aba
,aab
),难道他们都算作单独的台面,以及(提供当然它们都遵循规则)?