71.单词规律
给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。
/*
解题思路
先将规律pattern和字符串s分割开来,字符串s可以直接调用String里的split方法,然后用一个Hash表
分别pattern中的一个Character作为key,字符数组中的一个单词作为value,最后遍历一遍,边遍历边判断
当前映射是否已经存在或错误映射(两种情况:1、key值已存在但value不同 2、value已存在但key值不同),全遍历完没问题就返回true,否则遍历中间就会返回false。
*/
class Solution {
public boolean wordPattern(String pattern, String s) {
HashMap <Character,String> mp = new HashMap<>();
char[] pattern_chars=pattern.toCharArray();
String[] ss = s.split(" "); //按空格分割字符串
if(pattern_chars.length!=ss.length)return false;//长度都不对应直接false
int i=0;
for(char a : pattern_chars){
if(!mp.containsKey(a)){
if(!mp.containsValue(ss[i])){ //对应value已存在但key值不同
mp.put(a,ss[i++]);
}
else return false;
}
else {//对应key值已存在但value不同,注意比较要用equals,用!=结果不对
if(!Objects.equals(mp.get(a), ss[i++])) return false;
}
}
return true;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具