Un caractère isolé est un caractère (autre qu'un saut de ligne) qui n'a pas de caractère adjacent du même type. Les caractères adjacents peuvent être à gauche, à droite au-dessus ou en dessous, mais pas en diagonale. Par exemple dans le texte suivant H
est isolé:
Ybb
YH%
%%%%
Tous les autres personnages ne sont pas isolés car chacun d'eux a au moins un autre caractère du même type adjacent.
Votre tâche consiste à écrire un programme qui prend une chaîne en entrée et détermine le nombre de caractères isolés.
Notation
Votre réponse sera notée par deux mesures. Le premier est le nombre de caractères isolés dans votre programme. Vous devez viser à minimiser cela. Le second sera le nombre d'octets dans votre programme. Vous devez également minimiser cela. La taille du programme agira comme un bris d'égalité pour le premier critère.
Règles supplémentaires
Vous devez prendre en charge la saisie sur la plage ascii imprimable ainsi que tous les caractères que vous utilisez dans votre programme.
Vous pouvez considérer un saut de ligne comme un caractère de nouvelle ligne ou une nouvelle ligne suivie d'un saut de ligne.
Vous pouvez prendre des contributions dans n'importe quel format raisonnable. Cela comprend une liste de lignes.
Cas de test
Ybb
YH%
%%%%
Aaaab
uuu
yyybbb
A
qqWWaaww
la source
Y
dessous.restricted-source
défi et interdire complètement les personnages isolés.Réponses:
Python 2 , 0 (
350344314309301298291 octets)Essayez-le en ligne!
-7 octets, merci à Jo King
la source
Nettoyer , 0 (
439... 415 octets)-11 grâce à Ørjan Johansen
Enfin un défi où je peux marquer 0 avec Clean!
(et normalement c'est mauvais aux défis de mise en page source!)
Essayez-le en ligne!
Le lien TIO utilise en
module main
raison de la façon dont Clean est implémenté sur TIO, maismodule d
fonctionnera si vous nommez le fichierd.icl
au lieu de le fairemain.icl
comme TIO.Une des anciennes lignes expliquée (la nouvelle version est la même chose dans un ordre différent):
la source
let
enregistre 11 octets.d
outil pratique adjacentJavaScript (ES6), 0 (154 octets)
Enregistré
24 octets grâce à @ ØrjanJohansenPrend l'entrée comme un tableau de chaînes.
Essayez-le en ligne!
la source
Gelée , 0 (
41 2725 octets)Essayez-le en ligne!
Prend la saisie sous forme de liste de lignes. La première ligne du code ne fait jamais rien et n'est là que pour minimiser les caractères isolés.
la source
MATL , 0 (54 octets)
L' entrée est une matrice de cellules de chaînes, une pour chaque ligne:
{'line 1', 'line 2', 'and line 3'}
.Essayez-le en ligne! Ou vérifiez les cas de test et le code source .
la source
Python 3 , 0 (323 octets)
Essayez-le en ligne!
la source
05AB1E , 0 (101 octets )
Essayez-le en ligne.
C'est l'un des programmes 05AB1E les plus laids et les plus longs que j'aie jamais écrits ..>.> Ce défi est trompeusement difficile dans 05AB1E. Je n'ai aucun doute sur le fait que le nombre d'octets peut au moins être divisé par deux ou même trois / quatre fois plus petit en utilisant une approche différente (ou même avec une approche similaire), mais je ne vois actuellement pas comment. Je suis juste content que ça fonctionne en ce moment .. Si quelqu'un d'autre poste une réponse 05AB1E beaucoup plus courte avec quelques astuces, je vais probablement supprimer cette réponse par honte ... xD
Explication:
la source
Ruby , score 0,
237209 octetsEssayez-le en ligne!
la source
JavaScript (Node.js) , 0 (279 octets)
Essayez-le en ligne!
Recevez l'entrée sous forme de tableau de lignes.
la source