class Solution {
public boolean wordPattern(String pattern, String str) {
if(pattern==null||str==null) {
return false;
}
String[] newstr=str.split(" ");//去空格
if(newstr.length!=pattern.length()) {
return false;
}
//解法一
Set<Character> setchar=new HashSet<>();
Set<String> setstr=new HashSet<>();
for(int i=0;i<newstr.length;i++) {
setchar.add(pattern.charAt(i));
setstr.add(newstr[i]);
}
if(setchar.size()!=setstr.size()) {
return false;
}
//设置pat到str的map映射
Map<Character, String> map=new HashMap<>();
for(int i=0;i<newstr.length;i++) {
//解法一
if(!map.containsKey(pattern.charAt(i))) {
map.put(pattern.charAt(i), newstr[i]);
}else {
if(!map.get(pattern.charAt(i)).equals(newstr[i])) {
return false;
}
}
//解法二
/*
if(!map.containsKey(pattern.charAt(i))){//不存在
if(!map.containsValue(newstr[i])) {
map.put(pattern.charAt(i), newstr[i]);
}else {
return false;
}
}else {//存在
if(!map.get(pattern.charAt(i)).equals(newstr[i])) {
return false;
}
}*/
}
return true;
}
}
leetcode:290. 单词模式(java实现,两种详细解法,也比较好理解)
猜你喜欢
转载自blog.csdn.net/qq_42405666/article/details/89505402
今日推荐
周排行