1

我正在尝试对此进行试验,http ://gyazo.com/8190a3c98a520bbeb77335e05ea5a636 (一个视觉基本控制台应用程序)。我希望它允许用户输入这样的单词,并让控制台以所有可能的间隔组合回复它,所以:

假设我正在使用 TEST 这个词,例如,它将像这样间隔创建:

T EST
T E ST
T E S T
TE ST
TES T
T ES T

依此类推……(比如每个组合都可以用多个空格隔开或不隔开)

这可以通过控制台应用程序实现吗?

4

1 回答 1

0

数数时,从最低位开始。您从该数字从零开始计数,直到达到该数字的最大值,如下所示: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
  • ...
于 2013-04-07T01:54:49.857 回答