题目

用VB编程求两个字符串的最长连续公共子串,程序功能如下:在文本框Text1和Text2中分别输入任意两个字符串s1和s2,单击命令按钮 Command1,在标签 Label3和Label4中分别输出这两个字符串的最长连续公共子串和子串的长度其算法思想:分别从字符串s1和s2的左边第一个字符开始检查,若发现这两个字符串中有一个字符相同,则以这个字符为基准向右边扩大搜索范围,先检查其后面的第一个字符是否相同,若还是相同则继续搜索,直到找到不同的字符为止。然后按照该方法依次继续往后搜索,直到查找结束。程序界面如图所示,请回答下列问题: (1) 根据代码,若输入的s1为“Teacher”,s2为“teacher”,则最长连续公共子串为。 (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。 Dim s1 As String, s2 As string, maxstr As string Dim len1 As Integer, len2 As Integer, maxlen As Integer Function Min (a As Integer, b As Integer) As Integer     If a >=b Then min = b else min = a End Function Function Search (m As Integer, n As Integer) As Integer     Dim c As Integer     c = 1     Do While c<= Min (len1 -m, len2 - n)         If Mid (s1, m+ c, 1) = Mid(s2,n+c,1) Then                      Else             Exit Do 'Exit Do的作用是退出Do循环         End if     Loop     Search = c -1 End function Private Sub Command1_Click()     s1 = Text1. Text     s2 = Text2. Text     len1 = Len (s1)     len2 = Len (s2)     maxlen = 0: maxstr = ""     Dim i As Integer, j As Integer, k As Integer     For i=1 To len1         For j=1 To len2             If Mid(s1, i, 1) = Mid(s2,j,1) Then                 k =  'k用于记录连续公共子串的长度                 If (k> maxlen) Then                     maxlen = k                     maxstr =                 End if             End If         Next j     Next i     Labe13. Caption= "最长连续公共子串为:"& maxstr     Labe14. Cantion = "该子串长度是:"& str (maxlen) End sub 答案: 【1】eacher 【1】c=c+1【2】search(i,j)+1【3】mid(s1,i,k)或mid(s2,j,k)或其他等价答案。
信息技术 试题推荐
最近更新