代码之家  ›  专栏  ›  技术社区  ›  Michael

如何将字符串划分为大小为1到4的所有可能的字符组

  •  0
  • Michael  · 技术社区  · 16 年前

    我想采取任何输入字符串和分隔成组。每组可以至少有一个字符,但不能超过4个字符。如何循环创建所有可能的组合?

    例子:

    xoox公司

    输出: x | o | o | x,x | oo | x,x | oox,xo | o | x,xo | x,xoox,xoox

    我正在用VB写一个asp.net应用程序,但我真的只需要递归的概念。所以,任何语言中不使用特殊方法来实现这一点的例子都会对我有所帮助。

    2 回复  |  直到 16 年前
        1
  •  0
  •   jhleath    16 年前

    像这样的。。。

    Sub writeDelimination(ByVal toSplit As String, ByVal start As String)
        Dim top As Integer = 4
        If toSplit.Length < 4 Then
            top = toSplit.Length
        End If
        For i As Integer = 1 To top Step 1
            Dim split As String = toSplit.Substring(0, i)
            writeDelimination(toSplit.Substring(i, toSplit.Length - i), start + "|" + split)
        Next
        If top = 0 Then
            Console.WriteLine(start)
        End If
    End Sub
    

    你第一次打电话给潜艇 writeDelimination("xoox", Nothing)

        2
  •  0
  •   Ben McCormack    16 年前

    有趣的是,你的视觉表现 |

    你有 2^(n-1) n n :

    000
    001
    010
    011
    100
    101
    110
    111
    

    0 1

    当然,为了生成二进制数列表、创建输出列表等,VB.NET还有很多工作要做,但希望这能让您开始。