DSA problem
Word Pattern
Given a pattern and a string s, find if s follows the same pattern.
Here follow 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
patternmaps to exactly one unique word ins. - Each unique word in
smaps to exactly one letter inpattern. - No two letters map to the same word, and no two words map to the same letter.
The words in s are separated by a single space.
Examples
Example 1
Input:
pattern = "abba", s = "dog cat cat dog"Output:
trueExplanation: Letter "a" maps to "dog" and "b" maps to "cat". The mapping is a valid bijection, so the string follows the pattern.
Example 2
Input:
pattern = "abba", s = "dog cat cat fish"Output:
falseExplanation: Letter "a" would have to map to both "dog" and "fish", which is not a valid one-to-one mapping.
Example 3
Input:
pattern = "aaaa", s = "dog cat cat dog"Output:
falseExplanation: Letter "a" would map to "dog" and "cat" simultaneously, violating the bijection requirement.
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.
3 hints and a full solution walkthrough with step-by-step visualizations are available in the practice editor.