Middle+
Írjon egy függvényt, amely helyben eltávolítja az összes olyan elemet, amely megegyezik val értékével a slice-ben. Visszaadja a szeletet a törölt értékek nélkül. func RemoveValue(slice []int, val int) []int { // kódja } // Példa RemoveValue([]int{1,2,3,2,4}, 2) // -> []int{1,3,4} RemoveValue([]int{1,2,3}, 5) // -> []int{1,2,3} RemoveValue([]int{}, 1) // -> []int{}
sobes.tech MI
Válasz az MI-től
Функция удаляет все элементы, равные val, из слайса, изменяя его на месте, и возвращает новый срез без этих элементов. Для этого можно использовать два индекса: один для чтения, другой для записи.
func RemoveValue(slice []int, val int) []int {
j := 0
for _, v := range slice {
if v != val {
slice[j] = v
j++
}
}
return slice[:j]
}
Пример:
fmt.Println(RemoveValue([]int{1,2,3,2,4}, 2)) // [1 3 4]
fmt.Println(RemoveValue([]int{1,2,3}, 5)) // [1 2 3]
fmt.Println(RemoveValue([]int{}, 1)) // []