0
点赞
收藏
分享

微信扫一扫

290. 单词规律、Leetcode的Go实现

舍予兄 2022-01-30 阅读 34

290. 单词规律

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

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

示例1:

示例 2:

示例 3:

示例 4:

遍历,用map存储对应关系 

func wordPattern(pattern string, s string) bool {
// map+遍历——只用一个map,无法判断a=b=dog的情况
m:=map[byte]string{}
m1:=map[string]byte{}
str := strings.Fields(s)
if len(str)!=len(pattern){
return false
}
for i:=0;i<len(pattern);i++{
if (m[pattern[i]]!=""&&m[pattern[i]]!=str[i])||(m1[str[i]]!=0&&m1[str[i]]!=pattern[i]){ //存在且不相等
return false
}else{
m[pattern[i]]=str[i]
m1[str[i]]=pattern[i]
}
}
return true
}
举报

相关推荐

0 条评论