Sobes.tech
Middle+

Implémentez une fonction qui accepte []any et delta int. Il est nécessaire d’augmenter de delta uniquement les premières occurrences de nombres uniques (int). Les autres types et nombres répétés restent inchangés. La fonction doit renvoyer la liste mise à jour et 2 nombres : updated – combien de nombres uniques ont été modifiés, duplicates – combien d’éléments numériques se sont avérés être des doublons func IncrementUniqueIntsInMixed(xs []any, delta int) ([]any, int, int) { // votre code } // Exemple : 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 // nombres uniques : 1, 5, 0 // d == 2 // nombres doublons : deuxième 1, deuxième 5

sobes.tech IA

Réponse de l'IA

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 {
        // ce n'est pas un nombre, on passe
        continue
    }

    if !seen[num] {
        // première apparition d'un nombre unique
        xs[i] = num + delta
        seen[num] = true
        updated++
    } else {
        // nombre répété
        duplicates++
    }
}

return xs, updated, duplicates

}


Exemple d'utilisation:

```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 (les nombres 1, 5, 0 augmentés)
// d == 2 (le deuxième 1 et le deuxième 5 - doublons)