Inspiré par Est-ce que le début est égal à la fin
Étant donné une chaîne s
et un entier n
, affichez une valeur true / falsey indiquant si le n
th caractère dans s
est égal au n
th à partir du dernier caractère dans s
.
Contribution
Une chaîne non vide et un entier. Vous pouvez utiliser une indexation basée sur 0 ou une indexation basée sur 1. L'entier est garanti valide sur la base de la chaîne. Par exemple, si la chaîne est "supercalifragalistic123", l'entier peut être compris entre 1 et 23 pour l'indexation basée sur 1 et 0 à 22 pour l'indexation basée sur 0. Veuillez noter que cela n
peut être plus grand que la moitié de la longueur de s
.
L'entrée est limitée à l'ASCII imprimable.
Sortie
Une valeur truey / falsey basée sur le fait que la n
valeur e en s
soit égale à la n
valeur th de la dernière valeur en s
.
Veuillez noter que le dernier caractère est en position 0 pour l'indexation basée sur 0 et en position 1 pour l'indexation basée sur 1. Considérez-le comme comparant la chaîne à son inverse.
Cas de test
0 indexé
"1", 0 Truthy 1 == 1
"abc", 1 Truthy b == b
"aaaaaaa", 3 Truthy a == a
"[][]", 1 Falsey ] != [
"[][]", 0 Falsey [ != ]
"ppqqpq", 2 Truthy q == q
"ababab", 5 Falsey a != b
"12345", 0 Falsey 1 != 5
"letter", 1 Truthy e == e
"zxywv", 3 Falsey w != x
1 indexé
"1", 1 Truthy 1 == 1
"abc", 2 Truthy b == b
"aaaaaaa", 4 Truthy a == a
"[][]", 2 Falsey ] != [
"[][]", 1 Falsey [ != ]
"ppqqpq", 3 Truthy q == q
"ababab", 6 Falsey a != b
"12345", 1 Falsey 1 != 5
"letter", 2 Truthy e == e
"zxywv", 4 Falsey w != x
n
comme point de code? (pour les langues ésotériques comme le brain-flak)Réponses:
Gelée ,
54 octetsEssayez-le en ligne!
Il ne devrait pas y avoir de réponses plus courtes dans Jelly. Un programme aurait besoin d'une comparaison, d'une inversion / négation, d'un appel d'index et d'un octet pour le flux de contrôle (
Ɠ
dans ce cas), ce qui représente jusqu'à quatre octets.Comment ça marche
-1 octet grâce à @ ais523, en utilisant
Ɠ
la source
ịµU=
³
, car celaƓ
coûte un octet mais rend l'³
implicite et vous donne souvent plus de flexibilité pour le flux de contrôle.JavaScript (ES6), 26 octets
Alternativement:
Celui-ci fonctionne presque, mais échoue lorsque
n == 0
(parce ques.slice(-1,0) == ""
):Une autre solution de 26 octets que @RickHitchcock a souligné:
la source
~
, n'aurait jamais pensé à cela pour cela.MATL , 5 octets
Essayez-le en ligne!
Explication:
la source
Octave , 22 octets
Essayez-le en ligne!
Ou le même bytecount:
Essayez-le en ligne!
Explication:
C'est assez simple. Le premier prend une chaîne
s
et un entiern
comme entrées et vérifie l'égalité du nième élément pars(n)
rapport à l' élément "last-n + 1".Le second vérifie le nième élément
s(n)
contre le nième éléments
inversé.la source
05AB1E ,
75 octets-2 octets grâce à Adnan
Essayez-le en ligne! ou essayez tous les tests
Essayez-le en ligne!
la source
ÂøsèË
enregistre deux octetsHaskell, 22 octets
0-basd. Exemple d'utilisation:
"letter" # 1
->True
.Essayez-le en ligne!
la source
Alice , 24 octets
Essayez-le en ligne!
L'entrée se compose de la chaîne sur une ligne et du nombre sur la deuxième ligne. La sortie est
Jabberwocky
si les caractères sont les mêmes et rien d'autre.Explication
Ce programme est principalement en mode ordinal, avec une commande en mode cardinal. Linéarisé, le programme est le suivant:
la source
Python ,
2422 octets-2 octets grâce à Adnan.
Essayez-le en ligne!
la source
-n-1
par~n
.Cubix , 22 octets
1-indexé, prend comme entrée
index
,string
séparés par un espace.Essayez-le en ligne
Cubifié
Explication
C'est principalement linéaire. La logique principale est
On branche ensuite avec
?
toO
utput1
si le résultat est 0 et0
sinon.la source
Java 8,
4342 octetsEssayez-le ici.
la source
C #,
2827 octetsUn octet enregistré grâce à @KevinCruijssen.
Compile en a
Func<string, Func<int, bool>>
.la source
s.Length-n-1
pours.Length+~n
.CJam , 8 octets
Essayez-le en ligne!
L'index indexé 0 passe en premier.
la source
R 51 octets
Fonction anonyme, utilise l'indexation basée sur 1
la source
function(s,n)(s=utf8ToInt(s))[n]==rev(s)[n]
Rubis,
222018 octetsla source
->s,n{s[n]==s[~n]}
devrait marcher? (Je n'ai aucune idée de rubis)Clojure, 27 octets
Wow, c'était plus court que ce à quoi je m'attendais.
la source
APL (Dyalog) ,
105 octetsIl s'agit d'une fonction tacite, à laquelle il faut attribuer un nom tel que
f←⊃=⊃∘⌽
, puis appelé asint f string
.Merci à @ Adám pour un énorme 5 octets.
Comment ça marche:
Essayez-le en ligne!
La réponse de 22 octets a été éditée. Si vous voulez le voir, consultez l'historique des révisions.
la source
1
comme l'argument gauche par défaut. Essayez-le en ligne! Les fonctions n'assument rien; ils sont appliqués dyadiquement parce qu'on leur donne à la fois un argument de gauche et un argument de droite.⊃
prend le premier élément de l'argument? Quoi qu'il en soit, je vais modifier pour clarifier.V ,
26, 16, 13 octetsEssayez-le en ligne!
Hexdump:
1 indexé.
Explication:
Pour référence, ma réponse originale était:
Essayez-le en ligne! (0 indexé)
Hexdump:
la source
Àñx$x|ñ
se sent comme trop de personnages. J'ai essayé un regex seulement, mais il a fini par faire 24 longs!Mathematica, 34 octets
la source
StringTake[#, #2]
prend les premiers#2
caractères de#
.StringPart
fonctionnerait bien dans ce cas.#~(s=StringPart)~-#2==s@##&
#~s~{#2}==#~s~{#2}&
donnerait toujoursTrue
...List
deString
s en entrée, donc#[[#2]]==#[[-#2]]&
cela suffiraitPerl 6 , 27 octets
Essaye-le
la source
PHP> = 7.1, 36 octets
Version en ligne
la source
~+$p
enregistre un octet.Pyth ,
87 octetsAvec l'entrée inversée: d'abord l'index, puis la chaîne. Il est indexé 0.
Explications:
Essayez-le en ligne!
la source
Lua, 46 octets
Essayez-le en ligne!
la source
s
, et vous devez également la sortirJ, 6 octets
-4 octets grâce à FrownyFrog
Voir l'explication de la réponse originale - l'idée est assez similaire, mais cela se fait avec un crochet dyadique dont le verbe droit est lui-même un crochet monadique.
Essayez-le en ligne!
réponse originale (10 octets)
,:|.
argument de droite en haut de l'argument de droite inverse=/
sont-ils égaux par élément?{
prendre de cette liste booléenne l'index indiqué par l'argument de gaucheEssayez-le en ligne!
la source
C,
3635 octetsUtilise naturellement l'indexation 0.
Essayez-le en ligne!
la source
-1-n
possible+~n
.Japt ,
10 98 octetsEssayez-le en ligne!
la source
QBIC , 18 octets
Explication
la source
CJam, 11 octets
Mauvais. Trop de manipulation de pile.
la source
> <> (avec cet interprète), 25 octets
Cela ne fonctionne pas dans TIO: l'interpréteur TIO n'inverse pas la nouvelle pile lors de l' exécution de l'
[
instruction, mais le terrain de jeux pour poissons le fait - comparez les"abcde"5[ooooo;
courses ici et ici , par exemple.L'entrée de chaîne provient de STDIN, et nous supposons que n est déjà sur la pile. Utilise l'indexation 1.
Le poisson obtient le n ième caractère avec
[:}]&
qui siphonne les premiers n choses sur la pile dans une nouvelle pile inversée, un peu qui manipule, met alors les choses en arrière et enregistre le n ième caractère dans le registre. Il inverse ensuite toute la pile et refait la même chose, et renvoie 1 si les deux caractères sont égaux et 0 sinon.Cela semble fonctionner chez TIO , pour 26 octets:
la source
C, 73 octets
Compile tel quel avec GCC 6.3.1 (pas de fanions). Quelques brouillages inutiles inclus.
Usage
Truthy = rien, falsey = ordures.
la source
Lua , 35 octets
Utilise l'indexation 1.
Essayez-le en ligne!
la source