Inspirado por ¿El comienzo es igual al final?
Dada una cadena sy un número entero n, genera una verdad / falsa en cuanto a si el nth char en ses igual al nth desde el final char en s.
Entrada
Una cadena no vacía y un entero. Puede usar la indexación basada en 0 o la indexación basada en 1. Se garantiza que el entero sea válido según la cadena. Por ejemplo, si la cadena es "supercalifragalistic123", el número entero puede ser del 1 al 23 para la indexación basada en 1, y del 0 al 22 para la indexación basada en 0. Tenga en cuenta que npuede ser mayor que la mitad de la longitud de s.
La entrada está limitada a ASCII imprimible.
Salida
Un valor verdadero / falso basado en si el nvalor th en ses igual al nvalor th desde el último valor en s.
Tenga en cuenta que el último carácter está en la posición 0 para la indexación basada en 0 y en la posición 1 para la indexación basada en 1. Piense en ello como comparar la cadena con su reverso.
Casos de prueba
0 indexado
"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 indexado
"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

ncomo un punto de código? (para idiomas esotéricos como brain-flak)Respuestas:
Jalea ,
54 bytesPruébalo en línea!
No debería haber respuestas más cortas en Jelly. Un programa necesitaría comparación, inversión / negación, una llamada de índice y un byte para el flujo de control (
Ɠen este caso), que agrega hasta cuatro bytes.Cómo funciona
-1 byte gracias a @ ais523, usando
Ɠfuente
ịµU=³, ya queƓcuesta un byte pero lo hace³implícito y, a menudo, le brinda más flexibilidad de flujo de control.JavaScript (ES6), 26 bytes
Alternativamente:
Este casi funciona, pero falla cuando
n == 0(porques.slice(-1,0) == ""):Otra solución de 26 bytes que @RickHitchcock señaló:
fuente
~, nunca habría pensado en eso para esto.MATL , 5 bytes
Pruébalo en línea!
Explicación:
fuente
Octava , 22 bytes
Pruébalo en línea!
O el mismo bytecount:
Pruébalo en línea!
Explicación:
Es bastante sencillo. El primero toma una cadena
sy un enteroncomo entradas y comprueba el elementos(n)n- ésimo contra el elemento "last-n + 1" para la igualdad.El segundo verifica el enésimo elemento
s(n)contra el enésimo elemento desinvertido.fuente
05AB1E ,
75 bytes-2 bytes gracias a Adnan
Pruébalo en línea! o prueba todas las pruebas
Pruébalo en línea!
fuente
ÂøsèËahorra dos bytesHaskell, 22 bytes
0-basd. Ejemplo de uso:
"letter" # 1->True.Pruébalo en línea!
fuente
Alice , 24 bytes
Pruébalo en línea!
La entrada consiste en la cadena en una línea y el número en la segunda línea. La salida es
Jabberwockysi los caracteres son iguales, y nada de lo contrario.Explicación
Este programa está principalmente en modo ordinal, con un comando en modo cardinal. Linealizado, el programa es el siguiente:
fuente
Python ,
2422 bytes-2 bytes gracias a Adnan.
Pruébalo en línea!
fuente
-n-1por~n.Cubix , 22 bytes
1 indexados, toma la entrada como
index,string, separadas por un espacio.Pruébalo en línea
Cubified
Explicación
Esto es principalmente lineal. La lógica principal es
A continuación, rama con
?alOutput1si el resultado es 0 y0lo contrario.fuente
Java 8,
4342 bytesPruébalo aquí
fuente
C #,
2827 bytesSalvó un byte gracias a @KevinCruijssen.
Compila a a
Func<string, Func<int, bool>>.fuente
s.Length-n-1as.Length+~n.CJam , 8 bytes
Pruébalo en línea!
El índice indexado 0 va primero.
fuente
R 51 bytes
Función anónima, utiliza indexación basada en 1
fuente
function(s,n)(s=utf8ToInt(s))[n]==rev(s)[n]Ruby,
222018 bytesfuente
->s,n{s[n]==s[~n]}debería funcionar? (No tengo idea de rubí)Clojure, 27 bytes
Wow, esto fue más corto de lo que esperaba.
fuente
APL (Dyalog) ,
105 bytesEsta es una función tácita, a la que se le debe asignar un nombre como
f←⊃=⊃∘⌽, y luego llamar comoint f string.Gracias a @ Adám por la friolera de 5 bytes.
Cómo funciona:
Pruébalo en línea!
La respuesta de 22 bytes fue editada. Si quieres verlo, revisa el historial de revisiones.
fuente
1como argumento izquierdo predeterminado. Pruébalo en línea! Las funciones no asumen nada; se aplican de forma diádica porque se les da un argumento a la izquierda y a la derecha.⊃toma el primer elemento del argumento. De todos modos, editaré para aclarar.V ,
26, 16, 13 bytesPruébalo en línea!
Hexdump:
1 indexado.
Explicación:
Como referencia, mi respuesta original fue:
Pruébalo en línea! (0 indexado)
Hexdump:
fuente
Àñx$x|ñsiente como demasiados personajes. Intenté una expresión regular solamente, ¡pero terminó siendo como 24 de largo!Mathematica, 34 Bytes
fuente
StringTake[#, #2]toma los primeros#2caracteres de#.StringPartfuncionaría bien en este caso.#~(s=StringPart)~-#2==s@##&#~s~{#2}==#~s~{#2}&siempre cederíaTrue...ListdeStrings como entrada, por lo que#[[#2]]==#[[-#2]]&bastaríaPerl 6 , 27 bytes
Pruébalo
fuente
PHP> = 7.1, 36 bytes
Versión en línea
fuente
~+$pahorra un byte.Pyth ,
87 bytesCon la entrada invertida: primero el índice, luego la cadena. Está indexado a 0.
Explicaciones:
Pruébalo en línea!
fuente
Lua, 46 bytes
Pruébalo en línea!
fuente
s, y también necesita emitirlaJ, 6 bytes
-4 bytes gracias a FrownyFrog
Vea la explicación de la respuesta original: la idea es lo suficientemente similar, pero esto se logra con un gancho diádico cuyo verbo derecho es en sí mismo un gancho monádico.
Pruébalo en línea!
respuesta original (10 bytes)
,:|.argumento derecho encima de argumento inverso derecho=/¿son iguales por elementos?{tomar de esa lista booleana el índice indicado por el argumento izquierdoPruébalo en línea!
fuente
C,
3635 bytesUtiliza indexación basada en 0, naturalmente.
Pruébalo en línea!
fuente
-1-npuede ser+~n.Japt ,
10 98 bytesPruébalo en línea!
fuente
QBIC , 18 bytes
Explicación
fuente
CJam, 11 bytes
Malo. Demasiada manipulación de la pila.
fuente
> <> (con este intérprete), 25 bytes
No funciona en TIO: el intérprete de TIO no invierte la nueva pila al hacer el
[instrucción, pero el área de juegos para peces sí lo hace: compare"abcde"5[ooooo;correr aquí y aquí , por ejemplo.La entrada de cadena se toma de STDIN, y suponemos que n ya está en la pila. Utiliza 1-indexación.
El pescado se pone el n º con carácter
[:}]&, que desvía la primera n cosas en la pila en una nueva pila invertida, manipula eso un poco, a continuación, pone las cosas atrás y guarda el n º carácter en el registro. Luego invierte toda la pila y vuelve a hacer lo mismo, y devuelve 1 si los dos caracteres son iguales, y 0 en caso contrario.Esto parece funcionar en TIO , para 26 bytes:
fuente
C, 73 bytes
Compila tal cual con GCC 6.3.1 (sin banderas). Algunas ofuscaciones innecesarias incluidas.
Uso
Verdad = nada, falsey = basura.
fuente
Lua , 35 bytes
Utiliza 1-indexación.
Pruébalo en línea!
fuente