From ecfbf8ed91c1aabd2f986d463114bc9e6d4ee799 Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Sun, 1 Jan 2023 20:01:50 -0500 Subject: [PATCH] Time: 11 ms (97.09%), Space: 13.8 MB (5.64%) - LeetHub --- 290-word-pattern/290-word-pattern.py | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 290-word-pattern/290-word-pattern.py diff --git a/290-word-pattern/290-word-pattern.py b/290-word-pattern/290-word-pattern.py new file mode 100644 index 0000000..cf247ce --- /dev/null +++ b/290-word-pattern/290-word-pattern.py @@ -0,0 +1,29 @@ +class Solution(object): + def wordPattern(self, pattern, s): + """ + :type pattern: str + :type s: str + :rtype: bool + """ + words = s.split() + letterToWord = {} + + # Lengths do not match + if len(words) != len(pattern): + return False + + for i in range(len(pattern)): + # First iteration of a letter in pattern + if pattern[i] not in letterToWord: + # Word cannot be represented by multiple letters + if words[i] in letterToWord.values(): + return False + + letterToWord[pattern[i]] = words[i] + continue + + # Does word match pattern + if letterToWord[pattern[i]] != words[i]: + return False + + return True \ No newline at end of file