0290 - 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.
Examples
Input: pattern = "abba", s = "dog cat cat dog" Output: true
Input: pattern = "abba", s = "dog cat cat fish" Output: false
Input: pattern = "aaaa", s = "dog cat cat dog" Output: false
Constraints
1 <= pattern.length <= 300
pattern contains only lower-case English letters.
1 <= s.length <= 3000
s contains only lowercase English letters and spaces ' '.
s does not contain any leading or trailing spaces.
All the words in s are separated by a single space.
Java Solution
class Solution {
public boolean wordPattern(String pattern, String s) {
String[] words = s.split(" ");
if(words.length != pattern.length()) return false;
HashMap wordMap = new HashMap<>();
for(int i = 0; i < words.length; i++) {
if(!wordMap.containsKey(words[i])){
wordMap.putIfAbsent(pattern.charAt(i), words[i]);
wordMap.putIfAbsent(words[i], pattern.charAt(i));
}
if(!words[i].equals(wordMap.get(pattern.charAt(i)))) return false;
}
return true;
}
}
Last updated