Middle+
Implementați o funcție care acceptă []any și delta int. Este necesar să creșteți cu delta doar primele apariții ale numerelor unice (int). Alte tipuri și numere repetate rămân neschimbate. Funcția trebuie să returneze lista actualizată și 2 numere: updated – câte numere unice au fost modificate, duplicates – câte elemente numerice s-au dovedit a fi duplicate func IncrementUniqueIntsInMixed(xs []any, delta int) ([]any, int, int) { // codul tău } // Exemplu: 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 // numere unice: 1, 5, 0 // d == 2 // numere duplicate: al doilea 1, al doilea 5
sobes.tech AI
Răspuns de la 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 {
// nu este un număr, sărim peste
continue
}
if !seen[num] {
// prima apariție a unui număr unic
xs[i] = num + delta
seen[num] = true
updated++
} else {
// număr repetat
duplicates++
}
}
return xs, updated, duplicates
}
Exemplu de utilizare:
```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 (numerele 1, 5, 0 au fost crescute)
// d == 2 (al doilea 1 și al doilea 5 - duplicate)