You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
564 B
Go
28 lines
564 B
Go
package main
|
|
|
|
import "slices"
|
|
|
|
type character interface {
|
|
int | rune
|
|
}
|
|
|
|
// Returns all elements in slice A that are NOT in slice B
|
|
func setDifference[T comparable](s1 []T, s2 []T) []T {
|
|
toReturn := make([]T, 0, len(s1))
|
|
for _, val := range s1 {
|
|
if !slices.Contains(s2, val) {
|
|
toReturn = append(toReturn, val)
|
|
}
|
|
}
|
|
return toReturn
|
|
}
|
|
|
|
// Generate numbers in a range - start (inclusive) to end (exclusive)
|
|
func genRange[T character](start, end T) []T {
|
|
toRet := make([]T, end-start)
|
|
for i := start; i < end; i++ {
|
|
toRet[i-start] = i
|
|
}
|
|
return toRet
|
|
}
|