How to check if each letter in a string maps to the first letter of a word in another string with VB.NET

1 Answer

0 votes
Imports System

Module PatternMatch

    Function MatchesPattern(pattern As String, sentence As String) As Boolean
        Dim words() As String = sentence.Split({" "c}, StringSplitOptions.RemoveEmptyEntries)

        ' Length mismatch → automatic failure
        If pattern.Length <> words.Length Then
            Return False
        End If

        ' Compare each pattern character to the first letter of each word
        For i As Integer = 0 To pattern.Length - 1
            Dim p As Char = Char.ToLower(pattern(i))
            Dim w As Char = Char.ToLower(words(i)(0))

            If p <> w Then
                Return False
            End If
        Next

        Return True
    End Function

    Sub Main()
        Dim pattern As String = "jpcrg"
        Dim sentence As String = "java python c rust go"

        If MatchesPattern(pattern, sentence) Then
            Console.WriteLine("Pattern matches!")
        Else
            Console.WriteLine("Pattern does NOT match.")
        End If
    End Sub

End Module


' run:
'
' Pattern matches!
'

 



answered Jan 6 by avibootz

Related questions

...