单词规律

发布时间 2023-07-20 15:58:09作者: ^蒟蒻&

给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。

这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。

输入: pattern = "abba", s = "dog cat cat dog"
输出: true
输入:pattern = "abba", s = "dog cat cat fish"
输出: false
输入: pattern = "aaaa", s = "dog cat cat dog"
输出: false





import java.util.HashMap;
public class WordPattern{
public boolean wordPattern(String pattern, String s){
String[] sp = s.split(" ");
//两个字符串是映射的关系,如果长度不相等则直接返回true
if(sp.length!=pattern.length()) return false;
HashMap<Object,Integer> map= new HashMap();
for(Integer i=0;i<sp.length;i++){
/*
map.put()返回上一次存储的value值若是第一次存储则返回null
输入: pattern = "abba", s = "dog cat cat dog"
输出: true
i=0时,map.put('a',0)返回null map.put("dog",0)返回null相等
i=1时,map.put('b',1)返回null map.put("cat",1) 返回null相等
i=2时,map.put('b',2)返回1 map.put("cat",2)返回1相等
i=3时,map.put('a',3)返回0 map.put("dog",3)返回0相等
所以返回tru
*/
        if(map.put(pattern.charAt(i),i)!=map.put(sp[i],i)) return false;
}
return true;
}
}