lc-go/solutions/22/q2273/solution.go
2026-01-13 00:14:04 +09:00

37 lines
552 B
Go

package q2273
var buf = [26]int{}
var bufZ = [26]int{}
func isAnagram(a, b string) bool {
if len(a) != len(b) {
return false
}
seen := buf[:]
copy(seen, bufZ[:])
for i := range len(a) {
c := a[i] - 'a'
seen[c]++
}
for i := range len(b) {
c := b[i] - 'a'
seen[c]--
if seen[c] < 0 {
return false
}
}
return true
}
func removeAnagrams(words []string) []string {
p := 0
for i := 1; i < len(words); i++ {
if !isAnagram(words[p], words[i]) {
p++
words[p] = words[i]
}
}
return words[:p+1]
}
var _ = removeAnagrams