Un carácter aislado es un carácter (que no sea una nueva línea) que no tiene un carácter adyacente del mismo tipo. Los caracteres adyacentes pueden estar a la izquierda, arriba o abajo a la derecha, pero no diagonales. Por ejemplo, en el siguiente texto H
está aislado:
Ybb
YH%
%%%%
Todos los demás caracteres no están aislados porque cada uno de ellos tiene al menos otro carácter del mismo tipo adyacente.
Su tarea es escribir un programa que tome una cadena como entrada y determine la cantidad de caracteres aislados.
Puntuación
Su respuesta será puntuada por dos métricas. El primero es el número de caracteres aislados en su programa. Debes tratar de minimizar esto. El segundo será el número de bytes en su programa. Debes minimizar esto también. El tamaño del programa actuará como un desempate para el primer criterio.
Reglas Adicionales
Debe admitir la entrada en el rango de ascii imprimible más cualquier carácter que use en su programa.
Puede considerar un salto de línea como un carácter de nueva línea o una nueva línea seguida de un salto de línea.
Puede tomar información en cualquier formato razonable. Esto incluye una lista de líneas.
Casos de prueba
Ybb
YH%
%%%%
Aaaab
uuu
yyybbb
A
qqWWaaww
fuente
Y
debajo de él.restricted-source
desafío y no permitir personajes aislados por completo.Respuestas:
Python 2 , 0 (
350344314309301298291 bytes)Pruébalo en línea!
-7 bytes, gracias a Jo King
fuente
Limpio , 0 (
439... 415 bytes)-11 gracias a Ørjan Johansen
Finalmente, un desafío donde puedo marcar 0 con Clean!
(¡y normalmente es malo en los desafíos de diseño de fuente!
Pruébalo en línea!
El enlace TIO se usa
module main
debido a la forma en que Clean se implementa en TIO, peromodule d
funcionará si nombra el archivo end.icl
lugar demain.icl
como lo hace TIO.Una de las viejas líneas explicadas (la nueva versión es la misma en un orden diferente):
fuente
let
ahorra 11 bytes.d
a manoJavaScript (ES6), 0 (154 bytes)
Guardado
24 bytes gracias a @ ØrjanJohansenToma la entrada como una matriz de cadenas.
Pruébalo en línea!
fuente
Jalea , 0 (
41 2725 bytes)Pruébalo en línea!
Toma entrada como lista de líneas. La primera línea del código nunca hace nada y solo está allí para minimizar los caracteres aislados.
fuente
MATL , 0 (54 bytes)
De entrada es una serie de células de cadenas, una para cada línea:
{'line 1', 'line 2', 'and line 3'}
.Pruébalo en línea! O verificar los casos de prueba y el código fuente .
fuente
Python 3 , 0 (323 bytes)
Pruébalo en línea!
fuente
05AB1E , 0 (101 bytes )
Pruébalo en línea.
Este es uno de los programas 05AB1E más feos y largos que he escrito ..>.> Este desafío es engañosamente difícil en 05AB1E. No tengo ninguna duda en mente que el conteo de bytes se puede reducir al menos a la mitad o incluso tres o cuatro veces más pequeño utilizando un enfoque diferente (o incluso con un enfoque similar), pero actualmente no veo cómo. Me alegra que esté funcionando en este momento ... Si alguien más publica una respuesta 05AB1E mucho más corta con algunos trucos inteligentes, probablemente eliminaré esta respuesta por vergüenza ... xD
Explicación:
fuente
Ruby , puntaje 0,
237209 bytesPruébalo en línea!
fuente
JavaScript (Node.js) , 0 (279 bytes)
Pruébalo en línea!
Recibir entrada como conjunto de líneas.
fuente