ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¨Dvba¦p¦ó±N [A1]©î¶}½aÁ|¤£­«½Æ²Õ¦X

[µo°Ý] ¨Dvba¦p¦ó±N [A1]©î¶}½aÁ|¤£­«½Æ²Õ¦X

¨Dvba¦p¦ó±N [A1]©î¶}½aÁ|¤£­«½Æ²Õ¦X
§Y AB , BA ±Nµø¬°­«½Æ , °N¨ú AB

zz.PNG (10.6 KB)

zz.PNG

¨D§U.zip (6.36 KB)

·P谢¤À¨É¡A试¥Î§Aªº¥N码¡A谢谢¡A¤ä«ù§Aªº§V¤O¡C

TOP

¦^´_ 4# zheng211016


    Sub zz()
    Dim s$, a(), m&, k&, i&
    [c1].CurrentRegion.Offset(1, 0).ClearContents
    s = [a1].Value
    m = Len(s)
    ReDim a(1 To m)
    For i = 1 To m
        a(i) = Mid(s, i, 1)
    Next i
    ReDim b(1 To 2 ^ m - 1, 1 To 3)
    k = 0: Call recursive(a, m, k, "", 1, b)
    [c2].Resize(UBound(b), UBound(b, 2)) = b
    [c2].Resize(UBound(b), UBound(b, 2)).Sort key1:=[e2], key2:=[d2], key3:=[c2]
    [c2].CurrentRegion.Offset(0, 1).Resize(, 2).Clear
End Sub
Sub recursive(a, m, k, s$, n&, b)
    Dim i&, j&, ss$, c(), t&
    For j = 0 To 1
        If j Then ss = a(n) Else ss = ""
        If n < m Then
            Call recursive(a, m, k, IIf(ss = "", s, ss & s), n + 1, b)
        Else
            If Len(ss & s) Then
                k = k + 1: b(k, 1) = IIf(ss = "", s, ss & s)
                ReDim c(1 To Len(b(k, 1)))
                t = 0
                For i = UBound(c) To 1 Step -1
                    t = t + 1
                    c(i) = Mid(b(k, 1), t, 1)
                Next
                b(k, 1) = Join(c, "")
                b(k, 2) = Len(b(k, 1))
                b(k, 3) = Left(b(k, 1), 1)
            End If
        End If
    Next j
End Sub

TOP

¦^´_ 3# ikboy

³o¼Æ¾Ç°ÝÃD¦nÃø«¢«¢ ¨D¼Ó¥D¤À¨É

TOP

¤w¸Ñ¨M¤F, ¥t®ÄªG¤í¤F²Ä6¦æABD

TOP

¦³¤HÀ°¦£¶Ü?

TOP

        ÀR«ä¦Û¦b : ¤£©È¨Æ¦h¡A¥u©È¦h¨Æ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD