25 lines
422 B
Go
25 lines
422 B
Go
package q383
|
|
|
|
func canConstruct(ransomNote string, magazine string) bool {
|
|
counts := make([]int, 'z'-'a'+1)
|
|
|
|
for _, c := range magazine {
|
|
if c < 'a' || c > 'z' {
|
|
continue
|
|
}
|
|
counts[int(c)-int('a')]++
|
|
}
|
|
for _, c := range ransomNote {
|
|
if c < 'a' || c > 'z' {
|
|
continue
|
|
}
|
|
offset := int(c) - int('a')
|
|
counts[offset]--
|
|
if counts[offset] < 0 {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|
|
|
|
var _ = canConstruct
|