```go
func checkDistances(s string, distance []int) bool {
firstIndex := make([]int, 26)
for i := range firstIndex {
firstIndex[i] = -1
}
for i, c := range s {
idx := int(c - 'a')
if firstIndex[idx] != -1 {
if i - firstIndex[idx] - 1 != distance[idx] {
return false
}
} else {
firstIndex[idx] = i
}
}
return true
}
```