leetcode.单纯规律

1.要将pattern与s比,也要将s与parttern比  避免一下情况

eg:p="abbc"  str="dog cat cat dog"

2.strings.Split(str1,str2)

str1是你要分解的字符串   str2是你用什么来分割的字符串,str2也是字符串

func wordPattern(pattern string, s string) bool {
    //首先分割开来  利用map比较
    patterns:=strings.Split(pattern,"")
    ss:=strings.Split(s," ")
    if len(patterns)!=len(ss){
        return false
    }
    return wordPatternCompare(patterns,ss)&& wordPatternCompare(ss,patterns)
}

func wordPatternCompare(a []string ,b []string)bool{
    dic:=make(map[string]string)
    for i:=0;i<len(a);i++{
        if _,ok:=dic[a[i]];!ok{//不存在 就加入到map中去
            dic[a[i]]=b[i]
        }else if dic[a[i]]!=b[i]{//存在 就判断这个数值跟你map中是否相等就行
           return false
        }
    }
    return true
}

  

上一篇:理解JS中的回调(Callback)函数


下一篇:程序员面试金典 面试题 01.03. URL化