Skip to content

Instantly share code, notes, and snippets.

@youssef3wi
Created January 30, 2024 22:36
Show Gist options
  • Select an option

  • Save youssef3wi/8a4f8bd51a97837b81ebbbb9aa0630dc to your computer and use it in GitHub Desktop.

Select an option

Save youssef3wi/8a4f8bd51a97837b81ebbbb9aa0630dc to your computer and use it in GitHub Desktop.
/**
* Alors que vous vous promeniez dans les rayons d'une librarie peu recommandable,
* vous trouvez par hasard un carnet de notes écrit par le célèbre savant fou Hubert Zweistein.
* Vous aimeriez connaître son contenu, mais il est écrit en étrange langage codé.
* <p>
* Assez rapidement, vous faites une découverte : les lignes sont groupées 3 par 3,
* et chaque groupe contient le même nombre de lettres. En alternant les lettres
* des différents lignes, un message apparaît !
* <p>
* À partir de trois lignes du livre, alternez les lettres :
* <ul>
* <li>1ère lettre de la 1ère ligne,</li>
* <li>1ère lettre de la 2ème ligne,</li>
* <li>1ère lettre de la 3ème ligne,</li>
* <li>2ème lettre de la 1ère ligne,</li>
* <li>2ème lettre de la 2ème ligne,</li>
* <li>...</li>
* </ul>
* Découvrez ce que le docteur Zweistein cachait dans ces pages.
* <p>
* <b>Notes :</b>
* <ul>
* <li>Complétez la fonction donnée, qui doit <b>retourner</b> le bon résultat.</li>
* <li>Le résultat ne sera pas pris en compte si vous l'écrivez sur la sortie standard (stdout).</li>
* <li>Vous pouvez utiliser la sortie d'erreur (stderr) pour vos debugs.</li>
* <li>Les trois lignes données en paramètre contiennent uniquement des lettres
* majuscules et ont une taille maximale de 15 caractères.</li>
* </ul>
* <hr width="200px" />
* Exemple
* <table border="2">
* <tr>
* <td>Paramètres</td>
* <td>Valeur de retour</td>
* </tr>
* <tr>
* <td>HE</td>
* <td>HUBERT</td>
* </tr>
* <tr>
* <td>UR</td>
* </tr>
* <tr>
* <td>BT</td>
* </tr>
* </table>
*/
public class ZweisteinLibrary {
/**
* @param s1 la première ligne du message codé.
* @param s2 la deuxième ligne, de même longeur que s1
* @param s3 la troisième ligne, de même longeur que s1
* @return le message déchiffré, créé en alternant les lettres de s1, s2 et s3.
*/
public static String decrypt(String s1, String s2, String s3) {
StringBuilder result = new StringBuilder();
for (int idx = 0; idx < s1.length(); idx++) {
result.append(s1.charAt(idx))
.append(s2.charAt(idx))
.append(s3.charAt(idx));
}
return result.toString();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment