题目
Given a pattern and a string str, find if str follows the same pattern.
Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.
Example 1:
Input: pattern =\"abba\", str =\"dog cat cat dog\"Output: true
Example 2:
Input:pattern =\"abba\", str =\"dog cat cat fish\"Output: false
Example 3:
Input: pattern =\"aaaa\", str =\"dog cat cat dog\"Output: false
Example 4:
Input: pattern =\"abba\", str =\"dog dog dog dog\"Output: false
Notes:
You may assume pattern contains only lowercase letters, and str contains lowercase letters separated by a single space.
十分钟尝试
之前做过一个类似的题目,思路基本一样,就是注意value已经存在的情况,返回false。 比如 a b ,dog dog的情况,仅仅判断key是否存在map中不够,还需要判断value是否已经存在,如果是,但是key不同,必然是false
class Solution {
public boolean wordPattern(String pattern, String str) {
String[] words = str.split(\" \");
if (words.length != pattern.length()){
return false;
}
Map<Character,String> map=new HashMap();
for(int i=0;i<pattern.length();i++){
Character curr=pattern.charAt(i);
if(map.containsKey(curr)){
if(!map.get(curr).equals(words[i])){
return false;
}
}
else if(map.containsValue(words[i])){
return false;
}
else{
map.put(curr,words[i]);
}
}
return true;
}
}
继续阅读与本文标签相同的文章
下一篇 :
第四届中国优秀云计算开源案例评选活动开始
-
“公务车辆管理系统”哪家强?
2026-05-18栏目: 教程
-
区块链服务网络正式发布
2026-05-18栏目: 教程
-
团体标准《青少年编程能力等级》第1、2部分正式发布
2026-05-18栏目: 教程
-
【MySQL】逻辑架构
2026-05-18栏目: 教程
-
微软突然正式宣布,上亿用户措手不及!网友:又要多花钱了!
2026-05-18栏目: 教程
