Sobes.tech
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)