VB编程序

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:15:44
用VB编一个程序,当我输入一个序列之后,自动输出该序列的最长不下降子序列
比如1 3 2 4 5的最长不下降子序列就是1 2 4 5
子序列的意思就是子序列中的所有数字都在原序列中出现过,而且排序不变
1 3 4 5也是

添加一个Text,一个Command和一个Label

Private Sub Command1_Click()
Dim s() As String, r() As String, i As Integer, j As Integer
s = Split(Text1.text, " ")
j = 1
ReDim Preserve r(j)
r(1) = s(0)
For i = 0 To UBound(s) - 1
If s(i + 1) > s(i) Then
j = j + 1
ReDim Preserve r(j)
r(j) = s(i + 1)
End If
Next
Label1.Caption = ""
For i = 1 To j
Label1.Caption = Label1.Caption & " " & r(i)
Next
End Sub

那请问楼主所举的例子中,1 3 4 5 是不是1 3 2 4 5的最长不下降子序列?

补充:知道了,1 3 4 5 和1 2 4 5 都是1 3 2 4 5 的最长不下降子序列,那么:给定一个序列后,它可能有不止一个最长不下降子序列,那么编程是查找其中的一个就可以呢,还是全部找出来呢?

你要先定义一个数组,然后把里面的数字一个个分离开,放入数组中,最后在从第一个往后比较,满足条件的就用a=a+【i】。注意数字和字符串的区别.
好了,剩下的自己去写吧!加油哦,写出来了给我留言!

写详细一点

没看明白什么意思