(fuertemente inspirado por el elemento de cadena en el índice especificado )
Dada una cadena s
y un número entero que n
representa un índice en s
, salida s
con el carácter en la n
posición -th eliminada.
La indexación 0 y la indexación 1 están permitidas.
- Para la indexación 0,
n
será no negativa y menor que la longitud des
. - Para la indexación 1,
n
será positiva y menor o igual que la longitud des
.
s
consistirá solo en caracteres ASCII imprimibles ( \x20-\x7E
o
completos ~
).
Se permite cualquier entrada / salida razonable. Se aplican lagunas estándar .
Casos de prueba (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 prueba (1 indexado):
n s output
1 "abcde" "bcde"
2 "abcde" "acde"
3 "a != b" "a = b"
4 "+-*/" "+-*"
5 "1234.5" "12345"
4 "314151" "31451"
Este es el código de golf , por lo que la respuesta más corta en bytes gana.
3
,314151
->31451
. Supongo que no.Respuestas:
C #,
2019 bytesfuente
Alice ,
1312 bytesGracias a Leo por guardar 1 byte.
Pruébalo en línea!
La primera línea de la entrada es la cadena, la segunda línea es el índice basado en 0.
Explicación
fuente
Japt , 2 bytes
Pruébalo en línea!
fuente
K (Kona), 1 byte
Tengo que amar los builtins. Indexación basada en 0. Uso:
fuente
Haskell ,
2824 bytes-4 bytes gracias a Laikoni, esta versión está indexada 1.
Vieja respuesta:
Una función recursiva simple que toma el valor, está indexada a 0.
Mi primer código de golf, así que tal vez no sea la solución óptima. Oh bien.
fuente
Mathematica, 18 bytes
1 indexado
entrada
gracias Martin Ender
fuente
["abcde", {1}]
, en cuyo casoStringDrop
solo el truco es el truco. ¿Qué piensas? (Es posible que desee mencionar explícitamente que también está indexado en 1). Siempre estoy feliz de ver a las personas que publican respuestas de Mathematica :)V , 3 bytes
Pruébalo en línea!
Esto usa 1-indexación.
fuente
CJam , 4 bytes
Pruébalo en línea!
Explicación
fuente
Función GCC c, 25
Indexación basada en 1.
Un montón de comportamiento indefinido aquí, así que ten cuidado con los velociraptores extraviados :
strcpy()
página de manual dice que si la copia se realiza entre objetos que se superponen, el comportamiento es indefinido . Aquí claramente hay una superposición de las cadenas src y dest , pero parece funcionar, por lo que glibc es más cuidadoso o tuve suerte.s+=n
sucede antes dels-1
. El estándar c no ofrece tales garantías, y de hecho lo llama comportamiento indefinido. Nuevamente, parece funcionar como se requiere con el compilador gcc en x86_64 Linux.Pruébalo en línea .
fuente
strcpy
los argumentos deben ser empujados en orden de derecha a izquierda, lo que explicaría el comportamiento, pero usted dijo que estaba usando losx86_64
registros que usan ... tal vez el compilador decidió jugar golf ¡El código generado y decidió que calcular s + = n primero era más golfista!MATL , 3 bytes
Utiliza indexación basada en 1.
Pruébalo en línea! O verificar todos los casos de prueba .
Explicación
En la versión modificada con todos los casos de prueba, el código está dentro de un bucle infinito
`...T
hasta que no se encuentra ninguna entrada. Al final de cada iteración, la función de visualización (XD
) se llama explícitamente y la pila se borra (x
) para prepararla para la siguiente iteración.fuente
Vim, 7 bytes
Cómo funciona:
Espera dos líneas; uno con la cuerda y otro con el número.
fuente
jD@"gox
Java 8, 39 bytes
Pruébalo aquí.
Java 7, 67 bytes
Pruébalo aquí.
fuente
s->n->new StringBuilder(s).deleteCharAt(n)+"";
aunque es más largo.StringBuffer
lugar deStringBuilder
en codegolf. ;)Ruby , 16 bytes
Pruébalo en línea!
fuente
Haskell , 15 bytes
Esto requiere el GHC 8.4.1 recientemente lanzado (o superior). Ahora
<>
, como una función en Semigroups, está en Prelude. Es particularmente útil en la función SemigroupPruébalo en línea!
Como tio está utilizando una versión anterior de GHC, he importado
<>
en el encabezado.fuente
R, 40 bytes
Solo muestra la variedad de formas, ninguna de las cuales es particularmente compacta, puede jugar con cuerdas en R.
fuente
05AB1E , 5 bytes
Pruébalo en línea!
fuente
05AB1E , 6 bytes
Pruébalo en línea!
Explicación
fuente
Pyth, 3 bytes
Pruébalo aquí.
Toma el índice primero.
fuente
PHP, 42 bytes
0 indexado
Pruébalo en línea!
fuente
JS (ES6),
413231 bytesBasado en esto . Toma entrada a través del curry, primero es una cadena, segundo es el índice.
-9 gracias a @JohanKarlsson
-1 gracias a @ETHproductions
fuente
Jalea , 3 bytes
Un programa completo que toma el índice (basado en 1) y la cadena (en ese orden) e imprime el resultado.
Como función diádica, devuelve una lista de las dos partes.
De hecho, el índice puede ser una lista de n índices, en cuyo caso devuelve una lista de las partes n-1 .
Pruébalo en línea! o ver un conjunto de pruebas .
¿Cómo?
Como ejemplo de uso de múltiples índices:
fuente
vim,
107Toma una entrada indexada en el siguiente formato:
¡Gracias a @DJMcMayhem por 3 bytes!
fuente
Java 8,
4541 bytesGuardado 4 bytes gracias a @ OlivierGrégoire
Mi primer código de respuesta de golf en algo diferente a C #, incluso si aún no es el más corto para Java.
fuente
;
en lambda (-1 bytes). 2. En mis ojos, no necesitas regresar aString
. Creo que devolver elStringBuffer
sin el+""
sería perfectamente válido (-3 bytes). ¿Ejemplo?BigInteger
es una representación de un ilimitadoint
, en este casoStringBuffer
/StringBuilder
son representaciones deString
s mutable .Python 3 , 24 bytes
Pruébalo en línea!
fuente
JavaScript (ES6),
393433 bytes56 bytes guardados gracias a Arnauld .fuente
brainfuck , 14 bytes
Pruébalo en línea!
Lee el índice de un byte basado en cero seguido inmediatamente por la cadena.
fuente
Befunge-98 ,
352725 bytes-4 bytes gracias a @ eush77
Pruébalo en línea!
1 indexado, tenga en cuenta que la entrada tiene un byte nulo final.
fuente
PHP, 41 bytes, 35 bytes excluyendo? Php
0 indexado
TIO
fuente
[$argv[2]]
índice está creando implícitamente un rango? Además, IIRC puede dejarlo<?php
apagado, porque el intérprete PHP tiene un modo que no lo necesita, y porque normalmente no penalizamos por ese tipo de indicación en un archivo de cuál es el lenguaje.Japt ,
32 bytesPruébalo en línea!
fuente
1
R,
4847 bytes(1 byte guardado gracias al uso de
el()
Giuseppe)Divida la cadena en sus caracteres individuales, elimine la enésima y luego concatene nuevamente.
Puede haber una mejor solución, strsplit () es bastante difícil de manejar ya que devuelve una lista.
fuente
pryr::f([function body])
guarda algunos bytes y el usoel(strsplit(s,""))
guarda un byte, pero también no funciona en TIO por alguna razón.install.packages("pryr")
pero tal vez ese sea yo demasiado preciado!function(s,n)intToUtf8(utf8ToInt(s)[-n])
por 40 bytes.function(s,n)sub(sub(0,n,"(.{0})."),"\\1",s)
para 44.