Ce repository liste des katas en français.
La source originelle du kata est indiquée, seul un effort de traduction en français a été fait!
❓ C'est quoi un kata ? C'est un petit exercice de programmation qui est souvent donné en entretien. Il peut aussi être utilisé tout au long de sa carrière pour muscler ses compétences en algorithmie ou en programmation de manière plus large !
Liste des katas
♣️ Majorité, pairs ou impair ?- 🤹♀️ Palindrome
- 🔂 Inverser
- 🧮 Tri dans un tableau
- 🖨️ L'imprimante folle
- 🔢 Somme impaire
Source: Newsletter de Cassidoo
Donner l'élément qui apparaît le plus fréquemment dans un tableau d'entiers.
S'il n'y a pas d'élément qui apparaît plus qu'un autre, retourner une information indiquant si le tableau est composé en majorité de nombres pairs ou impairs.
Si le tableau n'a pas de majorité et qu'il n'a pas plus d'éléments pairs qu'impairs, retourner 0
Exemple
> majority([3,1,4,1])
> "1"
> majority([33,44,55,66,77])
> "Majorité impairs"
> majority([1,2,3,4])
> "Pas de majorité"
Proposition de résolution ici
Faites une fonction qui prend en paramètre un entier nombre. La fonction doit retourner true
si x est un palindrome, false
sinon.
Langage : libre
Exemple 1:
- Paramètre d'entrée: x = 121
- Réponse: true
- Explication: 121 se lit 121 de droite à gauche et de gauche à droite !
Exemple 2:
- Paramètre d'entrée: x = -121
- Réponse: false
- Explication: De gauche à droite, on lit -121. De droite à gauche, ça devient 121-. Ce n'est donc pas un palindrome.
Exemple 3:
- Paramètre d'entrée: x = 10
- Réponse: false
- Explication: Se lit 01 de droite à gauche. Ce n'est donc pas un palindrome.
Si vous choisissez Node.js, à l'exécution, ça devrait donner ceci 👇
> node palindrome(121)
> true
> node palindrome(-121)
> false
> node palindrome(10)
> false
Proposition de résolution ici
Source: Newsletter de Cassidoo du 15/01
A partir d'un tableau à deux dimensions, écrire une fonction qui l'inverse horizontalement ou verticalement.
Exemple
Pour ce tableau:
let array = [
[1,2,3],
[4,5,6],
[7,8,9]
]
En mode "horizontal", on obtient
> flip(array, 'horizontal')
> [[3,2,1],[6,5,4],[9,8,7]]
Tandis qu'en mode "vertical", on obtient
> flip(array, 'vertical')
> [[7,8,9],[4,5,6],[1,2,3]]
Source: Newsletter de Cassidoo du 3/06
Ecris une fonction qui prend en paramètre un tableau d'entiers. Elle doit retourner un nouveau tableau contenant seulement les entiers pairs (du tableau donné en paramètre) et triés par ordre croissant.
Exemple
> onlyEvens([1, 2, 3, 4, 5, 2])
> [2, 2, 4]
> onlyEvens([7, 8, 1, 0, 2, 5])
> [0, 2, 8]
> onlyEvens([11, 13, 15])
> []
Source: Newsletter de Cassidoo du 2/12/2024
Le Père Noël fait l'appel quotidien de ses rennes, mais l'imprimante a imprimé tous leurs noms à l'envers par erreur 😱
Pour prendre les présences correctement, il a besoin d'urgence d'un outil permettant d'inverser les noms des rennes et de les classer par ordre alphabétique ! Peux-tu aider le Père Noël ?
rollCall(["yzneT","ydissaC","enimA"])
> ["Amine","Cassidy","Tenzy"]
rollCall(["rennuD","nexiV","recnarP","temoC","neztilB","recnaD","diduC","rehsaD","hploduR"])
> ["Blitzen","Comet","Cupid","Dancer","Dasher","Donner","Prancer","Rudolph","Vixen"]
rollCall(["A","B","C"])
> ["A","B","C"]
Source: Newsletter de Cassidoo du 26/05/2025
Faire une fonction oddSum
qui prend deux tableaux en paramètre, un tableau 1 et un tableau 2.
Elle doit retourner toutes les paires qui retournent une somme impaire. Les cas d'erreur doivent également être gérés.
Voici quelques exemples d'utilisation et ce que doit retourner la fonction.
# Cas d'erreurs à gérer
oddSum([], [2, 3])
> "Error: First array is empty!"
oddSum([2, 3], [])
> "Error: Second array is empty!"
oddSum([], [])
> "Error: You should pass two arrays of numbers"
# Cas 1: Petits tableaux de même taille
oddSum([1, 2], [3, 5])
> [2, 3], [2, 5]
# Cas 2: Tableaux de taille différente
oddSum([9, 14, 6, 2, 11], [8, 4, 7, 20])
> [9, 20], [14, 7], [11,8]
oddSum([2, 4, 6, 8], [10, 12, 14])
> "Aucune paire trouvée : toutes les paires d'éléments possibles retournent une somme paire"