Sub FindCommonLetterCombinations()
'定義變量
Dim words() As String
Dim i, j, k, l, m As Integer
Dim commonLetters As String
'讀取單詞表
words = Split("apple,banana,pear,orange,grape,pineapple,kiwi,strawberry,melon,papaya,durian,peach,lemon,lime,cherry,blueberry,raspberry,mango,watermelon,avocado,apricot,fig,guava", ",")
'遍歷單詞表
For i = 0 To UBound(words)
For j = i + 1 To UBound(words)
'查找相同的字母組合
For k = 1 To Len(words(i))
For l = 1 To Len(words(j))
If Mid(words(i), k, 3) = Mid(words(j), l, 3) And Len(words(i)) >= k + 2 And Len(words(j)) >= l + 2 Then
For m = 4 To Len(words(i)) - (k - 1)
If Mid(words(i), k + m - 1, 1) <> Mid(words(j), l + m - 1, 1) Then
Exit For
Else
If m >= 3 Then
commonLetters = Mid(words(i), k, m)
Debug.Print "單詞 " & words(i) & " 和 " & words(j) & " ***享字母組合: " & commonLetters
End If
End If
Next m
End If
Next l
Next k
Next j
Next i
End Sub
這段代碼會輸出所有至少有三個字母相同的字母組合,並附上它們所屬的兩個單詞。為了避免重復輸出相同的字母組合,代碼只會在第壹次找到時輸出,並忽略後續重復出現的情況。
需要註意的是,由於要考慮多種可能的組合,代碼執行時間可能較長,特別是在單詞列表較大時。如果您需要處理更大的數據集或提高代碼效率,可以考慮使用其他算法或工具進行優化。