请看看下面的VB程序要怎么写?

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:52:10
一个单词,可以在其相边的两个字母中插入一个“-”(横杠字符)而形成一个字符串,比如单词cake,可以在相连字母间(不同的位置)拖入“-”,而得到如下字符串:
c-a-k-e
ca-k-e
cak-e
c-ak-e
c-ake
ca-ke
c-a-ke

如果给定任一个单词(作为输入),按上面的规则,在其相边的两个字母中插入一个“-”,要计算出所有可能的形成的字符串(输出),程序要怎么写?

又例如输入单词 cat,输出结果为:
c-a-t
ca-t
c-at

Private Sub Command1_Click()
MsgBox InsertStr(Text1.Text, "-")
End Sub

Public Function InsertStr(ByVal sSource, sInsert As String) As String
Dim b() As Boolean '每个元素表示一个字符后面是否被插入
Dim s() As String '原字符串的数组形式
Dim i, j As Integer
Dim q As Integer '商
Dim iLen As Integer '原字符串的字符个数
Dim sResult As String '函数返回值

iLen = Len(sSource)

If iLen <= 1 Then
InsertStr = sSource
Exit Function
End If

ReDim s(iLen - 1)
For i = 0 To iLen - 1
s(i) = Mid(sSource, i + 1, 1)
Next

ReDim b(iLen - 2) '最后一个字符的后面不被插入
sResult = ""
'字符后是否被插入可以借鉴二进制数取1和0的模型
For i = 1 To 2 ^ (iLen - 1) - 1
For j = 0 To iLen - 2 '二进制数每一位初始为0
b(j) = False
Next

q = i<