Trovare la differenza tra due serie in GoLang
29 gennaio 2020 • ☕️ 1 min leggi • 🏷 computer, software, algoritmo
Supponiamo di avere due serie di mani. Quando vogliamo determinare gli elementi di uno di questi due array che non si trovano nell’altro array, dobbiamo mettere questi due array in un processo di confronto. Di seguito è riportata una funzione di esempio che esegue questa operazione nel linguaggio di programmazione GoLang.
Sequenze di esempio e l’output atteso da queste sequenze sono i seguenti:
array1 := []int8{1, 2, 3, 4, 5}
array2 := []int8{3, 4, 5}
// result
array1 / array2 => {1, 2}
La funzione che confronta i due array in GoLang:
func difference(a, b []int8) []int8 {
target := map[int8]bool{}
for _, x := range b {
target[x] = true
}
result := []int8{}
for _, x := range a {
if _, ok := target[x]; !ok {
result = append(result, x)
}
}
return result
}
Trovare la differenza tra due array:
func main() {
array1 := []int8{1, 2, 3, 4, 5}
array2 := []int8{3, 4, 5}
result := difference(array1, array2)
fmt.Println("array1 / array2 => ", result)
// output: array1 / array2 => [1 2]
result2 := difference(array2, array1)
fmt.Println("array2 / array1 => ", result2)
// output: array2 / array1 => []
}
Per testare il codice => RUN