这道题可以将pattern中的每一个字母和str中的每一个单词之间建立一个映射(Map),比较简单,直接看代码吧!
public boolean wordPattern(String pattern, String str) {
if(str.equals("")){
return false;
}
String[] s = str.split(" ");
//如果匹配模式长度和字符串长度不同,则返回false
if(pattern.length() != s.length){
return false;
}
Map<Character,String> map = new HashMap<Character, String>();
for(int i = 0;i < pattern.length();i ++){
char key = pattern.charAt(i);
String value = s[i];
if(!map.containsKey(key)){
if(map.containsValue(value)){
return false;
}
map.put(key, value);
continue;
}
String temp = map.get(key);
if(!temp.equals(value)){
return false;
}
}
return true;
}