Inspirado por O começo é igual ao fim
Dada uma string s
e um número inteiro n
, faça uma truthy / falsey sobre se o n
th char in s
é igual ao n
th do end char in s
.
Entrada
Uma sequência não vazia e um número inteiro. Você pode usar indexação com base em 0 ou indexação com base em 1. O número inteiro é garantido para ser válido com base na cadeia. Por exemplo, se a sequência for "supercalifragalistic123", o número inteiro poderá ser de 1 a 23 para indexação baseada em 1 e 0 a 22 para indexação baseada em 0. Observe que n
pode ser maior que a metade do comprimento de s
.
A entrada é limitada ao ASCII imprimível.
Saída
Um valor de verdade / falsey baseado em se o n
th valor em s
é igual ao n
th do último valor em s
.
Observe que o último caractere está na posição 0 para indexação baseada em 0 e na posição 1 para indexação baseada em 1. Pense nisso como comparar a corda ao seu inverso.
Casos de teste
Indexado a 0
"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
Indexado 1
"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
como ponto de código? (para idiomas esotéricos, comoRespostas:
Geléia ,
54 bytesExperimente online!
Não deve haver respostas mais curtas em Jelly. Um programa precisaria de comparação, reversão / negação, uma chamada de índice e um byte para o fluxo de controle (
Ɠ
neste caso), que adiciona até quatro bytes.Como funciona
-1 byte graças a @ ais523, usando
Ɠ
fonte
ịµU=
³
, poisƓ
custa um byte, mas torna o³
implícito e muitas vezes oferece mais flexibilidade ao fluxo de controle.JavaScript (ES6), 26 bytes
Alternativamente:
Este quase funciona, mas falha quando
n == 0
(porques.slice(-1,0) == ""
):Outra solução de 26 bytes que @RickHitchcock apontou:
fonte
~
, nunca teria pensado nisso para isso.MATL , 5 bytes
Experimente online!
Explicação:
fonte
Oitava , 22 bytes
Experimente online!
Ou o mesmo bytecount:
Experimente online!
Explicação:
É bem direto. O primeiro pega uma string
s
e um número inteiron
como entradas e verifica o enésimo elemento ems(n)
relação ao elemento "last-n + 1" em busca de igualdade.O segundo verifica o n-ésimo elemento
s(n)
contra o n-ésimo elemento dos
invertido.fonte
05AB1E ,
75 bytes-2 bytes graças a Adnan
Experimente online! ou Experimente todos os testes
Experimente online!
fonte
ÂøsèË
salva dois bytesHaskell, 22 bytes
0-basd. Exemplo de uso:
"letter" # 1
->True
.Experimente online!
fonte
Alice , 24 bytes
Experimente online!
A entrada consiste na sequência em uma linha e no número na segunda linha. A saída é
Jabberwocky
se os caracteres forem iguais e nada for diferente.Explicação
Este programa está principalmente no modo ordinal, com um comando no modo cardinal. Linearizado, o programa é o seguinte:
fonte
Python ,
2422 bytes-2 bytes graças a Adnan.
Experimente online!
fonte
-n-1
por~n
.Cubix , 22 bytes
1-indexados, leva de entrada como
index
,string
, separados por um espaço.Experimente online
Cubificado
Explicação
Isso é principalmente linear. A lógica principal é
Em seguida, ramificamos
?
paraO
utput1
se o resultado for 0 ou0
não.fonte
Java 8,
4342 bytesExperimente aqui.
fonte
C #,
2827 bytesGuardou um byte graças a @KevinCruijssen.
Compila para um
Func<string, Func<int, bool>>
.fonte
s.Length-n-1
paras.Length+~n
.CJam , 8 bytes
Experimente online!
O índice indexado a 0 vai primeiro.
fonte
R 51 bytes
Função anônima, usa indexação baseada em 1
fonte
function(s,n)(s=utf8ToInt(s))[n]==rev(s)[n]
Ruby,
222018 bytesfonte
->s,n{s[n]==s[~n]}
deveria funcionar? (Não tenho idéia de rubi)Clojure, 27 bytes
Uau, isso foi mais curto do que eu esperava.
fonte
APL (Dyalog) ,
105 bytesEssa é uma função tácita, que precisa receber um nome como
f←⊃=⊃∘⌽
, e depois chamar comoint f string
.Agradecemos a @ Adám pelos 5 bytes impressionantes.
Como funciona:
Experimente online!
A resposta de 22 bytes foi editada. Se você quiser vê-lo, verifique o histórico de revisões.
fonte
1
como argumento esquerdo padrão. Experimente online! As funções não assumem nada; eles estão sendo aplicados de forma diádica porque recebem um argumento à esquerda e à direita.⊃
leva o primeiro elemento do argumento? Enfim, vou editar para esclarecer.V ,
26, 16, 13 bytesExperimente online!
Hexdump:
1 indexado.
Explicação:
Para referência, minha resposta original foi:
Experimente online! (0 indexado)
Hexdump:
fonte
Àñx$x|ñ
parece que há muitos personagens. Eu tentei apenas um regex, mas acabou tendo 24 anos!Mathematica, 34 bytes
fonte
StringTake[#, #2]
leva os primeiros#2
caracteres de#
.StringPart
funcionaria bem neste caso.#~(s=StringPart)~-#2==s@##&
#~s~{#2}==#~s~{#2}&
sempre deuTrue
...List
deString
s como entrada, portanto,#[[#2]]==#[[-#2]]&
seria suficiente #Perl 6 , 27 bytes
Teste-o
fonte
PHP> = 7.1, 36 bytes
Versão Online
fonte
~+$p
salva um byte.Pitão ,
87 bytesCom a entrada invertida: primeiro o índice, depois a string. É 0 indexado.
Explicações:
Experimente online!
fonte
Lua, 46 bytes
Experimente online!
fonte
s
, e você precisa para a saída dele tambémJ, 6 bytes
-4 bytes graças ao FrownyFrog
Veja a explicação original da resposta - a idéia é semelhante o suficiente, mas isso é realizado com um gancho diádico, cujo verbo certo é um gancho monádico.
Experimente online!
resposta original (10 bytes)
,:|.
arg direita no topo da arg direita reversa=/
são elementares iguais?{
retire dessa lista booleana o índice indicado pelo argumento esquerdoExperimente online!
fonte
C,
3635 bytesUsa indexação baseada em 0, naturalmente.
Experimente online!
fonte
-1-n
pode ser+~n
.Japonês ,
10 98 bytesExperimente online!
fonte
QBIC , 18 bytes
Explicação
fonte
CJam, 11 bytes
Ruim. Muita manipulação de pilha.
fonte
> <> (com este intérprete), 25 bytes
Não funciona no TIO: o intérprete TIO não inverte a nova pilha ao executar as
[
instruções, mas o playground de peixes funciona - compare a"abcde"5[ooooo;
corrida aqui e aqui , por exemplo.A entrada da string é obtida de STDIN, e assumimos que n já está na pilha. Usa indexação 1.
O peixe recebe o n º personagem com
[:}]&
que desvia os primeiros n coisas na pilha em uma nova pilha, invertida, manipula que um pouco, em seguida, coloca as coisas de volta e salva o n º personagem no registo. Ele então inverte a pilha inteira e faz o mesmo novamente e retorna 1 se os dois caracteres forem iguais e 0 caso contrário.Isso parece funcionar no TIO , por 26 bytes:
fonte
C, 73 bytes
Compila como está com o GCC 6.3.1 (sem sinalizadores). Alguma ofuscação desnecessária incluída.
Uso
Verdade = nada, falsey = lixo.
fonte
Lua , 35 bytes
Usa indexação 1.
Experimente online!
fonte