这道题可以将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;
}
本文介绍了一种模式匹配算法,该算法通过建立字符到单词的映射来判断输入字符串是否符合给定的模式。首先检查字符串是否为空,然后将字符串按空格分割成单词数组,并验证模式长度是否与单词数量相等。接下来,使用哈希表存储每个模式字符与对应单词的映射关系,确保同一模式字符始终对应相同的单词,且不同的模式字符不对应相同的单词。
712

被折叠的 条评论
为什么被折叠?



