18-12-17, 06:05 AM
(18-12-17, 05:35 AM)khodor1985 كتب :PHP كود :
Class WordGen
Inherits IEnumerable(Of String)
Private len As Integer
Private alphabet As List(Of Char)
Public Sub New(ByVal chars As String, ByVal length As Integer)
alphabet = chars.Distinct().ToList()
len = length
End Sub
Private Sub incString(ByVal s As StringBuilder, ByVal index As Integer, ByVal alphabet As List(Of Char))
If s(index) <> alphabet.Last() Then
s(index) = alphabet(alphabet.IndexOf(s(index)) + 1)
Return
End If
incString(s, index - 1, alphabet)
s(index) = alphabet.First()
End Sub
Public Iterator Function GetEnumerator() As IEnumerator(Of String)
Dim sb As StringBuilder = New StringBuilder(len)
For i As Integer = 0 To len - 1
sb.Append(alphabet(0))
Next
While True
Yield sb.ToString()
incString(sb, len - 1, alphabet)
If sb.ToString().Distinct().Count() = 1 AndAlso sb.ToString().Distinct().Single() = alphabet.Last() Then
Yield sb.ToString()
Return
End If
End While
End Function
Private Function GetEnumerator() As IEnumerator
Return GetEnumerator()
End Function
End Class
عند كتابة هذا الكلاس يسطر بالأحمر تحت IEnumerable(Of String)
PHP كود :
Inherits IEnumerable(Of String)

