给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。
示例
输入:
pattern="abba"
s = "dog cat cat dog"
输出: true
输入:pattern="abba"
s="dog cat cat fish"
输出: false
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/word-pattern
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处
class Solution {
public boolean wordPattern(String pattern, String s) {
String []str=s.split(" ");
if(str.length!=pattern.length())return false;
String []arr=new String[26];
//建立单词对应关系
for(int i=0;i<str.length;i++){
if(arr[pattern.charAt(i)-'a']==null){
arr[pattern.charAt(i)-'a']=str[i];
}else if(!arr[pattern.charAt(i)-'a'].equals(str[i])){
return false;
}
}
//检查单词与字母对应是否有重复
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]!=null&arr[j]!=null&&arr[i].equals(arr[j]))return false;
}
}
return true;
}
}