LeetCode290. 单词模式
给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。
这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。
示例1:
输入: pattern =
"abba"
, str =
"dog cat cat dog"
输出: true
示例 2:
输入:pattern =
"abba"
, str =
"dog cat cat fish"
输出: false
示例 3:
输入: pattern =
"aaaa"
, str =
"dog cat cat dog"
输出: false
示例 4:
输入: pattern =
"abba"
, str =
"dog dog dog dog"
输出: false
思路:以pattern字符串的每个字符作为哈希表的key,以str字符串中的每个单词作为value建立哈希表。
class Solution {
public boolean wordPattern(String pattern, String str) {
if(pattern==null||str==null) {
return false;
}
String[] words=str.split(" ");
if(words.length!=pattern.length()) {
return false;
}
Map<Character,String> map=new HashMap<Character,String>();
for(int i=0;i<pattern.length();i++) {
if(map.containsKey(pattern.charAt(i))) {
if(!map.get(pattern.charAt(i)).equals(words[i])) {
return false;
}
}else {
if(map.containsValue(words[i])) {
return false;
}
map.put(pattern.charAt(i), words[i]);
}
}
return true;
}
---------------------
作者:1号帅比
来源:CSDN
原文:https://blog.csdn.net/weixin_40550726/article/details/80536529
版权声明:本文为博主原创文章,转载请附上博文链接!

浙公网安备 33010602011771号