public class Solution {
public boolean wordPattern(String pattern, String str) {
if (pattern == null || str == null) {
return false;
}
String[] strings = str.split(" ");
if (strings.length != pattern.length()) {
return false;
}
Map<String, Character> map = new HashMap<>();
Set<Character> set = new HashSet<>();
for (int i = 0; i < strings.length; i++) {
if (!map.containsKey(strings[i])) {
if (!set.add(pattern.charAt(i))) {
return false;
}
map.put(strings[i], pattern.charAt(i));
} else {
char c = map.get(strings[i]);
if (c != pattern.charAt(i)) {
return false;
}
}
}
return true;
}
}