字符串1:如EFEEFE(两个一组,分三组,即EF EE FE),作为基础字符串,表示一图形;
另外,一些字符串如EEFEEF(EE FE EF),EEEFFE(EE EF FE)等字符串(这些字符串是三组字符串EF EE FE的排列组合)均表示同一图形;
用VB程序怎么判别这些字符串和基础字符串EFEEFE(EF EE FE)相似(即表示同一图形)?

解决方案 »

  1.   

    不知楼上所说的排序是按照哪种方式排序,按照单个字符顺序排序?
    像字符串1,EFEEFE(两个一组,分三组,即EF EE FE),表示一个图形;
    字符串2,EFEEEF(EF EE EF)就和字符串1不同,它表示另一图形;
    也就是说,其他字符串中的三小组字符串必须和字符串1中的三小组字符串相同,才表示同一图形。
      

  2.   


    '用记录集的sort方法排序,要引用“Microsoft AetiveX Date Objects 2.x Library”
    Function StrSort(anyInput As Variant, Optional Sort As String = "ASC") As String    Dim rs As New Recordset
        Dim i As Long
        
        With rs
            .Fields.Append "FSort", adVarChar, 10
            .Open
            For i = LBound(anyInput) To UBound(anyInput)
                .AddNew
                !FSort = anyInput(i)
                .Update
            Next
            .Sort = "FSort " & Sort
            For i = LBound(anyInput) To UBound(anyInput)
                anyInput(i) = !FSort
                .MoveNext
            Next
            StrSort = Join(anyInput)
        End With
        Set rs = Nothing
        
    End Function'测试
    Private Sub Command1_Click()
        Dim s1, s2, s3
        
        s1 = Split("EF,EE,FE", ",")      '比如这个是基准
        s2 = Split("EF,EE,FE", ",")
        s3 = Split("FE,EE,FE", ",")
        Debug.Print StrSort(s1) = StrSort(s2)
        Debug.Print StrSort(s1) = StrSort(s3)
    End Sub当然你也可以用排列组合来做,方法多样的