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