下面这种解法是参考其他网友给出的答案,我自己之前的答案少考虑了一种情况(并没有 if(!map.get(key).equals(array[i])) 这样的判断语句)所以导致错误。
class Solution {
public boolean wordPattern(String pattern, String str) {
HashMap<Character,String>map=new HashMap<>();
String [] array=str.split(" ");
if(pattern.length()!=array.length)
{
return false;
}
for(int i=0;i<pattern.length();i++)
{
char key=pattern.charAt(i);
if(map.containsKey(key))
{
if(!map.get(key).equals(array[i]))
{
return false;
}
}
else
{
if(map.containsValue(array[i]))
{
return false;
}
map.put(key,array[i]);
}
}
return true;
}
}