当前位置: 高中信息技术 / 填空题
  • 1. (2019·上海模拟) 在数据压缩中,一个常用的途径是行程长度压缩。对于一个待压缩的字符串而言,我们可以依次记录每个字符及重复的次数。这种压缩,对于相邻数据重复较多的情况比较有效。 例如,如果待压缩串为“AAABBBBCBB”,则压缩的结果是(A,3)(B,4)(C,1)(B,2)。

    现要求根据输入的字符串(长度在1000 以内),全部由数字和字母组成,得到大小写不敏感压缩后的结果(即所有小写字母均视为相应的大写字母)。如:原字符串为aAABBbBCCCaaaaa,压缩后的结果(A,3)(B,4)(C,3)(A,5)。

    实现这一功能的程序代码如下:

    Private Sub Command1_Click()

        Dim s As String, s1 As String

        Dim tmp As String, ans As String

        Dim i As Integer, j As Integer

        s = Text1.Text

        s1 = ""

        For i = 1 To Len(s)

            s1 = s1 & ToUpcase()

        Next i

        i = 1

        Do While i <= Len(s1)

            tmp = Mid(s1, i, 1)

            ans = ans & "(" & tmp & ","

            j = i + 1

            Do While j <= Len(s1) And Mid(s1, j, 1) = tmp

                j = j + 1

            Loop

            ans = ans && ")"

            

        Loop

        Text2.Text = ans

    End Sub

    Function ToUpcase(c As String) As String

        If c >= "a" And c <= "z" Then

            ToUpcase = Chr(Asc(c) - 32)

        Else

            ToUpcase = c

        End If

    End Function

    在画线处填入适当的语句或表达式,将程序补充完整。

微信扫码预览、分享更方便