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)