我正在尝试对此进行试验,http ://gyazo.com/8190a3c98a520bbeb77335e05ea5a636 (一个视觉基本控制台应用程序)。我希望它允许用户输入这样的单词,并让控制台以所有可能的间隔组合回复它,所以:
假设我正在使用 TEST 这个词,例如,它将像这样间隔创建:
T EST
T E ST
T E S T
TE ST
TES T
T ES T
依此类推……(比如每个组合都可以用多个空格隔开或不隔开)
这可以通过控制台应用程序实现吗?
数数时,从最低位开始。您从该数字从零开始计数,直到达到该数字的最大值,如下所示:0, 1, 2, 3, 4, 5, 6, 7, 8, 9
. 然后,一旦达到最高值,您必须添加第二个数字(例如10
)。10 - 19
然后,在再次增加第二个数字(例如 20)之前,再次从最低位到最高位(例如 )。这样,一旦达到999
,您将在一个三位数的数字中列出所有可能的值组合。
当以二进制计数时,它的工作方式相同,但每个数字的最大值是一个,所以你可以像这样从最低位开始计数0, 1
:然后你必须添加第二个数字并再次计数:10, 11
。然后您需要添加第三个数字(例如100
)并在前两个上再次执行所有操作。当您到达 时111
,您将在一个三位二进制数中列出所有可能的 1 和 0 组合。
因此,如果您将每个字母之间的空格视为二进制数中的一个数字,其中 0 表示没有空格,1 表示有空格,那么您所要做的就是从 0 向上计数到二进制中的最大值与单词长度相同的位数减去 1。因此,例如,对于单词TEST
,计数将如下所示:
000
=TEST
001
=TES T
010
=TE ST
011
=TE S T
100
=T EST