title: LeetCode-Word-Pattern
date: 2019-01-31 12:23:25
tags: LeetCode
categories: LeetCode
290. Word Pattern
Difficulty: Easy
Given a pattern
and a string str
, find if str
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 str
.
Example 1:
Input: pattern = "abba", str = "dog cat cat dog"
Output: true
Example 2:
Input:pattern = "abba", str = "dog cat cat fish"
Output: false
Example 3:
Input: pattern = "aaaa", str = "dog cat cat dog"
Output: false
Example 4:
Input: pattern = "abba", str = "dog dog dog dog"
Output: false```
Notes:
You may assume pattern
contains only lowercase letters, and str
contains lowercase letters separated by a single space.
Solution
Language: Java
class Solution {
public boolean wordPattern(String pattern, String str) {
String[] words = str.split(" ");
if (words.length != pattern.length())
return false;
Map<java.io.Serializable, Integer> index = new HashMap<java.io.Serializable, Integer>();
for (Integer i = 0; i < words.length; ++i) {
Integer left = index.put(pattern.charAt(i), i);
Integer right = index.put(words[i], i);
if (left != right) {
return false;
}
}
return true;
}
}