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 条评论