六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 133|回复: 0

VB6求两个字符串最长公共子串的问题

[复制链接]

升级  49.2%

238

主题

238

主题

238

主题

进士

Rank: 4

积分
746
 楼主| 发表于 2013-2-5 02:15:54 | 显示全部楼层 |阅读模式
Function LCS(ByVal A As String, ByVal B As String) As String
If Len(A) * Len(B) = 0 Then LCS = "": Exit Function
Dim la As Integer, lb As Integer, achar() As String, bchar() As String, c() As Integer, i As Integer, j As Integer, max As Integer
la = Len(A)
lb = Len(B)
ReDim achar(la - 1)
ReDim bchar(lb - 1)
ReDim c(la - 1)
For i = 1 To la
achar(i - 1) = Mid(A, i, 1)
Next
For i = 1 To lb
bchar(i - 1) = Mid(B, i, 1)
Next
max = 0
For i = 0 To lb - 1
For j = la - 1 To 0 Step -1
If bchar(i) = achar(j) Then
If i * j = 0 Then
c(j) = 1
Else
c(j) = c(j - 1) + 1
End If
Else
c(j) = 0
End If
If c(j) > max Then max = c(j): LCS = Mid(A, j + 2 - max, max)
Next
Next
If max = 0 Then LCS = ""
End Function 
 
Private Sub Command1_Click()
MsgBox LCS("如果你想推荐本文到CSDN 技术中心,请选择下列的文章分类之一。文章保存时将自动提交到CSDN技术中心,通过审核后本文将出现在您的CSDN 技术中心的专栏中。", "如果您不希望本文被提交到CSDN技术中心,请选择""不发表到CSDN技术中心""")
End Sub

返回 “提交到CSDN技术中心,”
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表