Middle+
Implementeer een functie die []any en delta int accepteert. Alleen de eerste verschijningen van unieke nummers (int) moeten met delta worden verhoogd. Andere types en herhaalde nummers blijven ongewijzigd. De functie moet de bijgewerkte lijst en 2 getallen retourneren: updated – hoeveel unieke nummers zijn gewijzigd, duplicates – hoeveel numerieke elementen duplicaten waren func IncrementUniqueIntsInMixed(xs []any, delta int) ([]any, int, int) { // jouw code } // Voorbeeld: xs := []any{1, "a", 5, "b", 1, 0, 5} u, d, s := IncrementUniqueIntsInMixed(xs, 3) // xs == []any{4, "a", 8, "b", 1, 3, 5} // u == 3 // unieke nummers: 1, 5, 0 // d == 2 // dubbele nummers: tweede 1, tweede 5
sobes.tech AI
Antwoord van AI
go func IncrementUniqueIntsInMixed(xs []any, delta int) ([]any, int, int) { seen := make(map[int]bool) updated := 0 duplicates := 0
for i, v := range xs {
num, ok := v.(int)
if !ok {
// geen nummer, overslaan
continue
}
if !seen[num] {
// eerste voorkomen van een uniek nummer
xs[i] = num + delta
seen[num] = true
updated++
} else {
// herhaald nummer
duplicates++
}
}
return xs, updated, duplicates
}
Voorbeeld van gebruik:
```go
xs := []any{1, "a", 5, "b", 1, 0, 5}
u, d, s := IncrementUniqueIntsInMixed(xs, 3)
// xs == []any{4, "a", 8, "b", 1, 3, 5}
// u == 3 (nummers 1, 5, 0 verhoogd)
// d == 2 (tweede 1 en tweede 5 - duplicaten)