luoheng
10/12/2019 - 6:56 AM

isAlienSorted

func isAlienSorted(words []string, order string) bool {
    c := [26]int{}
    for i := 0; i < len(order); i++ {
        c[order[i]-'a'] = i
    }
    for i := 0; i < len(words) - 1; i++ {
        min := len(words[i])
        if len(words[i+1]) < min {
            min = len(words[i+1])
        }
        var j int
        for j = 0; j < min; j++ {
            if c[words[i][j]-'a'] > c[words[i+1][j]-'a'] {
                return false
            } else if c[words[i][j]-'a'] < c[words[i+1][j]-'a'] {
                break
            }
        }
        if j == min && len(words[i]) > len(words[i+1]) {
            return false
        }
    }
    return true
}