Middle+
/** * chars = ['a', 'a', 'a', 'b', 'b', 'c', 'a'] * return: a3b2ca2 */ class JavaTask3Solution { public String compress(char[] chars) { } }
sobes.tech IA
Réponse de l'IA
Pour résoudre le problème de compression d'un tableau de caractères en une chaîne avec comptage des caractères répétés, on peut parcourir le tableau, compter le nombre de caractères identiques consécutifs, et former le résultat en ajoutant le caractère et le nombre si celui-ci est supérieur à 1.
Exemple d'implémentation en Java :
class JavaTask3Solution {
public String compress(char[] chars) {
StringBuilder result = new StringBuilder();
int count = 1;
for (int i = 1; i <= chars.length; i++) {
if (i < chars.length && chars[i] == chars[i - 1]) {
count++;
} else {
result.append(chars[i - 1]);
if (count > 1) {
result.append(count);
}
count = 1;
}
}
return result.toString();
}
}
Dans ce code, on parcourt le tableau, en comparant le caractère actuel avec le précédent, en comptant les répétitions, et lors du changement de caractère, on ajoute au résultat le caractère et le nombre (si supérieur à 1).