LeetCode 290. 单词规律
题目描述
给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。
示例1:
输入: pattern = "abba", str = "dog cat cat dog"
输出: true
单词规律
提示:
1 <= pattern.length <= 300
pattern 只包含小写英文字母
1 <= s.length <= 3000
s 只包含小写英文字母和 ' '
s 不包含 任何前导或尾随对空格
s 中每个单词都被 单个空格 分隔
一、解题关键词
双向连接、
二、解题报告
1.思路分析
map建立唯一映射
2.时间复杂度
3.代码示例
class Solution {
public boolean wordPattern(String pattern, String s) {
int patLen = pattern.length(),strLen = s.length();
String[] chArr = s.split(" ");
int chArrlen = chArr.length;
if(patLen != chArrlen){return false;}
Map<Character,String> map = new HashMap<>();
for(int i = 0; i< patLen;i++){
if(!map.containsKey(pattern.charAt(i))){
if(map.containsValue(chArr[i])){
return false;
}
map.put(pattern.charAt(i),chArr[i]);
}else{
if(!map.get(pattern.charAt(i)).equals(chArr[i])){
return false;
}
}
}
return true;
}
}
2.知识点