Word Pattern

IF
AlgoAxiomStaff Engineers
JSTS
Easy20 mins

Given a pattern and a string s, find if s follows the same pattern.

Here follows means a full match, such that there is a bijection between a letter in pattern and a non-empty word in s. Specifically:

  • Each letter in pattern maps to exactly one unique word in s.
  • Each unique word in s maps to exactly one letter in pattern.
  • No two letters map to the same word, and no two words map to the same letter.

Examples

Example 1:

Input: pattern = "abba", s = "dog cat cat dog"

Output: true

Explanation: The bijection is: 'a' -> "dog", 'b' -> "cat".

Example 2:

Input: pattern = "abba", s = "dog cat cat fish"

Output: false

Explanation: 'a' maps to "dog" at index 0 but would need to map to "fish" at index 3.

Example 3:

Input: pattern = "aaaa", s = "dog cat cat dog"

Output: false

Explanation: 'a' maps to "dog" at index 0 but would need to map to "cat" at index 1.

Constraints

  • 1 <= pattern.length <= 300
  • pattern contains only lower-case English letters
  • 1 <= s.length <= 3000
  • s contains only lower-case English letters and spaces ' '
  • s does not contain any leading or trailing spaces
  • All the words in s are separated by a single space
Source: Hash Maps pattern — AlgoAxiom
JavaScript
Test Case 1
root = [1, 2, 3]
Test Case 2
root = [1, 2, 3, 4, 5]
Idle