leetcode Word Pattern 题目:https://leetcode.com/problems/word-pattern/
解题思路:创建一个map,建立字符与字符串之间的意义映射
直接返回false的情况:
1.键存在,值不同。
2.键不存在,值存在
3.键不存在,值也不存在,插入到map
4.键存在,值相等,继续往下执行。
public static void main(String[] args) {
String pattern="abba";
String str="dog cat cat dog";
boolean flag = wordPattern(pattern, str);
System.out.println(flag);
}
public static boolean wordPattern(String pattern, String str) {
String[] split = str.split(" ");
if(pattern.length()!=split.length){
return false;
}
Map<Character,String> map=new HashMap<>();
for(int i=0;i<pattern.length();i++){
char c = pattern.charAt(i);
if(map.containsKey(c)){
String s = map.get(c);
if(!s.equals(split[i])){
return false;
}
}else{
if(map.containsValue(split[i])){
return false;
}
map.put(c,split[i]);
}
}
return true;
}