TD
Entrainement au DS
delta encoding
Le codage par différence (delta encoding en anglais) permet de compresser un tableau de données en indiquant pour chaque donnée, sa différence avec la précédente (plutôt que la donnée elle-même). On se retrouve alors avec un tableau de données assez petites nécessitant moins de place en mémoire. Cette méthode se révèle efficace lorsque les valeurs consécutives sont proches.
Programmer la fonction delta
qui prend en paramètre un tableau non vide de nombres entiers et qui renvoie un tableau contenant les valeurs entières compressées à l’aide cette technique.
delta([100000, 100000, 100001, 100002, 100002])
Gene
La fonction recherche prend en paramètres deux chaines de caractères gene et seq_adn et renvoie True si on retrouve gene dans seq_adn et False sinon. Implémenter la fonction recherche.
console.log(recherche("AATC", "GTACAAATCTTGCC")); //true
console.log(recherche("AGTC", "AAGTCGCC")) // true
Une interface
Entrainement au DS
L’occurrence d’un caractère
L’occurrence d’un caractère dans un phrase est le nombre de fois où ce caractère est présent.
Exemples :
- l’occurrence du caractère ‘o’ dans ‘bonjour’ est 2 ;
- l’occurrence du caractère ‘b’ dans ‘Bébé’ est 1 ;
- l’occurrence du caractère ‘B’ dans ‘Bébé’ est 1 ;
- l’occurrence du caractère ‘ ‘ dans ‘Hello world !’ est 2.
On cherche les occurrences des caractères dans une phrase. On souhaite stocker ces occurrences dans un objet dont les clefs seraient les caractères de la phrase et les valeurs l’occurrence de ces caractères.
Par exemple : avec la phrase 'Hello world !' le dictionnaire est le suivant :
{'H': 1,'e': 1,'l': 3,'o': 2,' ': 2,'w': 1,'r': 1,'d': 1,'!': 1}
Écrire une fonction occurrence_lettres
prenant comme paramètre une variable phrase
de type str
. Cette fonction doit renvoyer un objet constitué des occurrences des caractères présents dans la phrase.
Rendre la monnaie.
On s’intéresse au problème du rendu de monnaie. On suppose qu’on dispose d’un nombre infini de billets de 5 euros, de pièces de 2 euros et de pièces de 1 euro.
Le but est d’écrire une fonction nommée rendu
dont le paramètre est un entier positif non nul somme_a_rendre
et qui retourne une liste de trois entiers n1
, n2
et n3
qui correspondent aux nombres de billets de 5 euros (n1
) de pièces de 2 euros (n2
) et de pièces de 1 euro (n3
) à rendre afin que le total rendu soit égal à somme_a_rendre
.
On utilisera un algorithme glouton. Autrement dit, on commencera par rendre le nombre maximal de billets de 5 euros, puis celui des pièces de 2 euros et enfin celui des pièces de 1 euros.