(fortemente inspirado no elemento String no índice especificado )
Dada uma sequência s
e um número inteiro n
representando um índice s
, imprima s
com o caractere na n
-ésima posição removida.
A indexação 0 e a indexação 1 são permitidas.
- Para a indexação 0,
n
será não negativo e menor que o comprimento des
. - Para a indexação 1,
n
será positivo e menor ou igual ao comprimento des
.
s
consistirá apenas em caracteres ASCII imprimíveis ( \x20-\x7E
ou
completos ~
).
Qualquer entrada / saída razoável é permitida. Aplicam-se brechas padrão .
Casos de teste (indexados 0):
n s output
0 "abcde" "bcde"
1 "abcde" "acde"
2 "a != b" "a = b"
3 "+-*/" "+-*"
4 "1234.5" "12345"
3 "314151" "31451"
Casos de teste (indexados 1):
n s output
1 "abcde" "bcde"
2 "abcde" "acde"
3 "a != b" "a = b"
4 "+-*/" "+-*"
5 "1234.5" "12345"
4 "314151" "31451"
Isso é código-golfe , então a resposta mais curta em bytes vence.
3
,314151
->31451
. Eu diria que não.Respostas:
C #,
2019 bytesfonte
Alice ,
1312 bytesAgradecemos a Leo por economizar 1 byte.
Experimente online!
A primeira linha da entrada é a sequência, a segunda linha é o índice baseado em 0.
Explicação
fonte
Japonês , 2 bytes
Experimente online!
fonte
K (Kona), 1 byte
Conseguiu amar builtins. Indexação baseada em 0. Uso:
fonte
Haskell ,
2824 bytes-4 bytes graças a Laikoni, esta versão é 1 indexada.
Resposta antiga:
Uma função recursiva simples que aceita o valor, é indexada em 0.
Minha primeira vez em código de golfe, então talvez não seja a solução ideal. Ah bem.
fonte
Mathematica, 18 bytes
Indexado 1
entrada
obrigado Martin Ender
fonte
["abcde", {1}]
StringDrop
aceita , nesse caso, por si só, o truque. O que você acha? (Você pode querer mencionar explicitamente que é 1-indexados também.) Eu sempre fico feliz de ver as pessoas a postar respostas Mathematica :)V , 3 bytes
Experimente online!
Isso usa 1 indexação.
fonte
CJam , 4 bytes
Experimente online!
Explicação
fonte
Função GCC c, 25
Indexação baseada em 1.
Muito comportamento indefinido aqui, então cuidado com os velociraptores dispersos :
strcpy()
página do manual diz que, se a cópia ocorrer entre objetos que se sobrepõem, o comportamento é indefinido . Aqui há claramente sobreposição do src e dest seqüências , mas parece funcionar, então o glibc é mais cuidadoso ou tive sorte.s+=n
acontece antes das-1
. O padrão c não oferece tais garantias e, de fato, chama isso de comportamento indefinido. Novamente, parece funcionar conforme necessário com o compilador gcc no x86_64 Linux.Experimente online .
fonte
strcpy
os argumentos precisam ser empurrados na ordem da direita para a esquerda, o que explicaria o comportamento, mas você disse que estava usando ox86_64
que usa registradores ... talvez o compilador tenha decidido jogar golfe o código gerado e decidiu que computar s + = n primeiro era mais golfista!MATL , 3 bytes
Usa indexação baseada em 1.
Experimente online! Ou verifique todos os casos de teste .
Explicação
Na versão modificada com todos os casos de teste, o código fica dentro de um loop infinito
`...T
até que nenhuma entrada seja encontrada. No final de cada iteração, a função display (XD
) é explicitamente chamada e a pilha é limpa (x
) para prepará-la para a próxima iteração.fonte
Vim, 7 bytes
Como funciona:
Ele espera duas linhas; um com a corda e outro com o número.
fonte
jD@"gox
Java 8, 39 bytes
Experimente aqui.
Java 7, 67 bytes
Experimente aqui.
fonte
s->n->new StringBuilder(s).deleteCharAt(n)+"";
é mais longo.StringBuffer
vez deStringBuilder
no codegolf. ;)Ruby , 16 bytes
Experimente online!
fonte
Haskell , 15 bytes
Isso requer o GHC 8.4.1 lançado recentemente (ou superior). Agora
<>
, como uma função nos Semigrupos, está no Prelúdio. É particularmente útil na função SemigroupExperimente online!
Como o tio está usando uma versão mais antiga do GHC, importei
<>
no cabeçalho.fonte
R, 40 bytes
Apenas mostra as várias maneiras, nenhuma das quais particularmente compacta, você pode mexer nas cordas em R.
fonte
05AB1E , 5 bytes
Experimente online!
fonte
05AB1E , 6 bytes
Experimente online!
Explicação
fonte
Pitão, 3 bytes
Experimente aqui.
Leva o índice primeiro.
fonte
PHP, 42 bytes
0 indexado
Experimente online!
fonte
JS (ES6),
413231 bytesCom base nisso . Toma entrada através de currying, primeiro é string, segundo é índice.
-9 graças a @JohanKarlsson
-1 graças a @ETHproductions
fonte
Geléia , 3 bytes
Um programa completo que pega o índice (com base em 1) e a sequência (nessa ordem) e imprime o resultado.
Como uma função diádica, ele retorna uma lista das duas partes.
De fato, o índice pode ser uma lista de n índices; nesse caso, ele retorna uma lista das n-1 partes.
Experimente online! ou consulte uma suíte de testes .
Quão?
Como um exemplo do uso de vários índices:
fonte
vim,
107Recebe entrada indexada em 1 no seguinte formato:
Obrigado a @DJMcMayhem por 3 bytes!
fonte
Java 8,
4541 bytesGuardado 4 bytes graças a @ OlivierGrégoire
Meu primeiro código de golfe responde em algo diferente de C #, mesmo que ainda não seja o mais curto para Java.
fonte
;
em lambda (-1 bytes). 2. Aos meus olhos, você não precisa retornar aString
. Eu acho que retornar oStringBuffer
sem o+""
seria perfeitamente válido (-3 bytes). Exemplo?BigInteger
é uma representação de um ilimitadoint
, neste casoStringBuffer
/StringBuilder
são representações deString
s mutáveis .Python 3 , 24 bytes
Experimente online!
fonte
JavaScript (ES6),
393433 bytes56 bytes salvos graças a Arnauld .fonte
brainfuck , 14 bytes
Experimente online!
Lê o índice de um byte baseado em zero imediatamente seguido pela string.
fonte
Befunge-98 ,
352725 bytes-4 bytes graças a @ eush77
Experimente online!
Indexado em 1, observe que a entrada possui um byte nulo à direita.
fonte
PHP, 41 bytes, 35 bytes excluindo? Php
Indexado a 0
TIO
fonte
[$argv[2]]
índice está criando implicitamente um intervalo? Além disso, você pode deixar o IIRC<?php
desativado, porque o intérprete PHP tem um modo que não precisa dele e porque normalmente não penalizamos esse tipo de indicação em um arquivo de qual é o idioma.Japonês ,
32 bytesExperimente online!
fonte
1
R,
4847 bytes(1 byte economizado com o uso de
el()
graças a Giuseppe)Divida a string em seus caracteres individuais, remova a enésima e concatene novamente.
Pode muito bem haver uma solução melhor, strsplit () é bastante complicado, pois retorna uma lista.
fonte
pryr::f([function body])
salva alguns bytes e o usoel(strsplit(s,""))
salva um byte, mas também não funciona no TIO por algum motivo.install.packages("pryr")
mas talvez seja eu que sou preciosa demais!function(s,n)intToUtf8(utf8ToInt(s)[-n])
por 40 bytes.function(s,n)sub(sub(0,n,"(.{0})."),"\\1",s)
para 44.