Je ne sais pas tout de vous mais je ne me prépare pas pour Halloween –– je n'ai jamais voulu –– mais, mon voisin l'est, alors nous allons l'aider.
Elle a besoin d'aide pour déterminer quelle marque de bonbons elle a, mais elle a tellement de bonbons qu'elle ne pourrait pas finir avant Halloween.
Elle a:
- Snickers
- KitKat
- Starburst
- GummyBears
- Twix
Contribution
Une chaîne multiligne (ou toute autre forme raisonnable) contenant uniquement des lettres et des espaces.
Production
Une valeur falsifiée s'il ne s'agit pas d'un bonbon valide, ou de quel bonbon il s'agit s'il s'agit d'un bonbon.
Comment décider de quel bonbon il s'agit
Un bonbon est valable s'il indique l'une des marques ci-dessus. Cependant, ce n'est pas si simple, car c'est un bonbon valide:
K i t
K a
t
Un bonbon valide est celui où:
- les lettres sont en ordre de gauche à droite
- les lettres sont correctement capitalisées
- les lettres, allant de gauche à droite, ne pas à la fois monter et descendre
- les lettres avec des espaces supprimés forment l'une des marques ci-dessus
C'est le code-golf , donc le code le plus court en octets gagne!
Exemples
Truthys:
1.
kers
c
i
n
S
2.
Kit K a t
3.
St a
r b u
r st
4.
Bear s
G ummy
5.
T w i
x
Falsys:
1.
SNICKERS
2.
C n
a d y
3.
xiwT
4.
S C I
ss o
r s
5.
Kit
Kat
Réponses:
Pyth - 72 octets
J'espère avoir attrapé tous les cas extrêmes. Base la liste des bonbons compressés.
Suite de tests .
la source
JavaScript (ES6),
221218216212208205201 octetsEssayez-le ici.
la source
Snick
,ears|T
etc. Je pense que vous pouvez résoudre ce problème en ajoutant.split('|')
avant.indexOf
.ears|T
n'est pas le problème car seules les lettres sont autorisées dans les cas de test. Cependant, vous avez raison, carSnick
.Raquette 446 octets
Non golfé:
Essai:
Production:
la source
JavaScript (ES6), 139 octets
Accepte l'entrée en tant que tableau de chaînes à espace rembourré.
la source
R, 199 caractères
L'entrée se présente sous la forme d'une matrice de caractères.
match
prend soin de quel bonbon c'est (il vérifie aussi la capitalisation).Pour vérifier que les lettres sont une séquence "ascendante" ou "descendante", nous avons juste besoin de vérifier que les emplacements du premier caractère non-espace (s'il y en a) dans chaque ligne augmente ou diminue. Pour ce faire, nous
apply
diff
. Cela pourrait avoir un zéro, sinon devrait être soit tout positif soit tout négatifdiff
z
et emportez le produit extérieur avec lui-même. Si le diff avait des entrées positives et négatives mixtes, il y aura une entrée négative quelque part dans son produit extérieur. Si c'est le cas, retournez FALSE.Notez que des cas comme
renverra un vecteur de caractère vide (en particulier pas "Twix"), car
match
essaiera de faire correspondre "Twxi".la source
Python 2.7, 254 octets
Je suis sûr que cela peut être joué plus. L'entrée est un tableau de lignes
s
.Essayez-le ici!
la source