gpt4 book ai didi

vb.net - 通过重复获得组合

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:50:36 26 4
gpt4 key购买 nike

如何将所有可能的组合写入控制台?例如,如果用户输入abc,那么它会写成aaa, aab, aac, abb, abc, acc, bbb, bbc, ccc。请帮助我。

这是一些代码:

    Dim abc() As String = {"a", "b", "c"} '      

Sub Main()
Console.WriteLine("Enter the amount of characters")
Dim count As Integer = Console.ReadLine
outputStrings("", count)

Console.ReadLine()
End Sub

Private Sub outputStrings(ByVal startString As String, ByVal letterCount As Integer)
For i = 0 To abc.Length - 1
Dim temp As String = startString
temp += abc(i)
If temp.Length = letterCount Then
Console.WriteLine(temp)

If i = abc.Length - 1 Then
Console.WriteLine("----")
End If
Else
outputStrings(temp, letterCount)
End If

Next
End Sub

必须在虚线之后做一些事情来移除不需要的排列,从而只留下有效的组合。

最佳答案

您可以使用附加参数 abcIndex 将使用的字母限制为 abc(i) 或右侧的字母,并从那里开始 for 循环。只有字母按字母顺序排列的字符串才会被写入,这样可以防止重复。

Private Sub outputStrings(ByVal startString As String, ByVal letterCount As Integer, ByVal abcIndex As Integer)
For i = abcIndex To abc.Length - 1
Dim temp As String = startString
temp += abc(i)
If temp.Length = letterCount Then
Console.WriteLine(temp)
Else
outputStrings(temp, letterCount, i)
End If
Next
End Sub

调用:

outputStrings("", 3, 0)

关于vb.net - 通过重复获得组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6140599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com