c0d1ngup 2023 : Entraînement 1

c0d1ngup 2023 : Entraînement 1

 |  par  snarkturne

Vous voulez vous entraîner un peu avant c0d1ngUP ?

Voilà quelques conseils… illustrés par des défis des précédentes éditions de c0d1ngUP.

Le message en entrée du problème est :

BWAZABWAKABWAJABWAPABWAIABWANAIBWAKABWAFABWAIABWAZABWAMALBWAMABWACABWATABWAWABWA
PABWAKABWADABWARABWALABWACABWAOABWABABWAEABWATABWAJAFBWAXAABWAAABWATABWAHABWACAU
BWAJABWANABWASABWAAABWARABWAXABWACABWAWABWAHABWAIATBWAGABWADABWAGABWASABWACABWAU
ABWAAABWAPABWAIABWAFABWAUABWATABWACABWAPABWATABWARABWAWABWATATBWASABWAKABWATABWA
NABWAXABWAMABWARAIBWAPABWAUABWAGABWAZABWAPABWAKARBWAMABWAXABWAPABWAEABWAYABWAVAB
WAVABWANABWAQABWAYABWAHABWAUABWACABWAEABWAOABWALABWASABWAVAEBWAIABWAJABWAJABWAIA
BWAMABWAJABWAPABWANABWATABWAPARBWAMABWAOABWAZABWARABWAXABWAHABWADABWAOABWAGABWAI
ABWACABWAEABWAQABWAFABWABABWATALBWAQABWACABWATABWAGABWAWABWAAABWASABWALABWAJABWA
TABWAGABWAFABWAKABWAUAEBWAGABWAOABWAZABWAMABWAMABWAIABWASABWANABWAOABWABABWANABW
ANABWAKABWADABWAJABWAFABWAMABWAPABWACALBWASABWAUABWASABWAOABWAFABWABABWAVABWAJAB
WADABWADABWAVABWAHABWARABWAZABWADAEBWAKABWARABWAAABWANABWADABWAVABWAHABWAEABWANA
BWAXAVBWAZABWASABWAWABWATABWAIABWAFAIBWAIABWAAABWATABWAMABWATABWAGABWAWABWAZABWA
EABWATABWAZABWAIABWAAABWAFABWANAEBWATABWAUABWASARBWAUABWAQABWAFABWAZABWAAABWAUAB
WABABWAKABWAIABWAVABWAGABWAKABWAZABWARABWARABWAKABWACABWAPABWALAEBWAMABWAMABWAHA
BWAQABWAKABWAHABWAAABWADABWAOABWAIABWAWABWAYATBWASABWAYABWACABWAYABWAAABWAIAABWA
YAPBWAJABWANABWAVABWAOABWAQABWASABWACAPBWAVABWALABWAQABWACABWAJABWASABWADABWAWAB
WARABWANABWAGABWADABWAYABWAFABWAJABWAXABWAHABWACABWAKAUBWAHABWATABWARAYBWADABWAF
ABWAXABWAQABWAOABWAHABWAZABWAFABWACABWAMABWAFABWATABWACAEBWAYABWAMABWAEABWAMABWA
LABWABABWAXABWAZABWAAABWAMABWAXABWARABWATABWABABWAGARBWAGABWAIABWAQABWAZABWAXABW
AWABWADASBWAPABWAPABWATABWAJABWAVABWAVABWASABWALABWAJABWASABWAZABWAKABWAKABWARAB
WAMABWALABWALAUBWAPABWAZABWAZABWAPABWAXABWAVABWASABWAAABWAAABWAKABWAEABWAWARBWAM
ABWARABWAAABWASABWAVABWAGABWALABWAYABWACABWAJABWASALBWAAABWARABWAYABWAZABWAAABWA
UABWAQABWADABWABABWAOABWAOABWAEABWAFABWAYABWAUABWAJAEBWAWABBWAJABWABABWAAABWAIAB
WAYABWAJABWAEABWASABWATABWAWABWAXAOBWABABWACABWAJAUBWAYABWANABWATABWAEABWAIABWAV
ABWAMABWANABWAAABWACABWAUABWAEABWAEABWAZABWAZABWAMABWAGABWAOATBWAZABWAUABWAGABWA
LABWAOABWAFABWAPABWAQABWAJABWAGABWAYABWAFABWAZABWAPAOBWARANBWANABWAUABWABAJBWAXA
BWAMABWAOABWADABWAZABWABABWAVABWAAABWAEABWACABWAKABWAKAABWAZABWAZABWAJABWAJABWAB
ABWAGABWADABWALABWAMABWAEABWAIABWAGABWAPABWAWABWAIABWAFABWALABWACAUBWADABWAQABWA
YABWADANBWANABWAYABWAFAEBWALABWAZABWAJABWATABWAXABWAMABWACABWAUABWAQABWACABWALAB
WATABWAXABWATA

Il est possible trouver la solution au problème manuellement… mais c’est un peu fastidieux.

La solution la plus immédiate, si on connaît les expressions régulières, et de demander à votre langage favori de remplacer BWA.A (. peut remplacer n’importe quel caractère) par une chaîne vide, ce qui donnera directement la réponse (en python, regarder du côté de re.sub)

Une autre solution est de regarder le début de la chaîne :

  • si c’est BWA et que le 5e caractère est aussi un A, alors supprimer les 5 premiers caractères et reprendre au début.
  • sinon, afficher le premier caractère et le supprimer, puis reprendre au début.

Ce problème est aussi réalisable avec un logiciel de traitement de texte (surtout s’il supporte les expressions régulières)

Enfin, il existe plusieurs outils capables de manipuler des textes complets, en utilisant des expressions régulières. Par exemple, grep, sed