Su misión, si elige aceptarla, es decidir si una cadena de entrada dada tiene mucho Dot o Dash.
Una cadena tiene muchos puntos cuando su representación morse contiene más puntos que guiones. Por ejemplo, la letra E es un solo punto, lo que significa que tiene mucho Dot.
Entrada
- La cadena de entrada solo contendrá caracteres en el rango de
[a-z]
o[A-Z]
. Puede decidir si todas deben estar en mayúscula o en minúscula.AAA
está bien,aaa
está bien,aAa
no lo está. - La cadena de entrada siempre tendrá al menos 1 carácter de longitud.
- Puede suponer que las cadenas de entrada nunca tendrán la misma cantidad de puntos y guiones.
Salida
Debería devolver Truthy para las entradas que contienen más caracteres de punto.
Debería devolver Falsy para las entradas que contienen más caracteres de guión.
Editar: también permitiré un valor positivo para punto y un valor negativo para guión.
Casos de prueba
| input | morse representation | result |
|------------------------------------------------|
| S | ... | Truthy |
| k | -.- | Falsy |
| HELLO | .... . .-.. .-.. --- | Truthy |
| code | -.-. --- -.. . | Falsy |
Referencia
Este es el código de golf . El código más corto en bytes gana.
Respuestas:
APL (Dyalog Extended) ,
2415 bytes SBCS-9 gracias a Ven
La función de prefijo tácito anónimo toma mayúsculas como argumento.
Pruébalo en línea!
⌂morse
convertido a la lista de cadenas Morse∘
entonces∊
ε nlist (aplanar)'.-'⍧
contar el número de puntos y rayas en la que>/
más puntos que los guiones? (lit. mayor que la reducción)fuente
IBM PC DOS, ensamblaje 8088,
5435 bytes-19 bytes usando el método de diferencia
Desmontado:
Explicación
Implementado en la sintaxis Intel / MASM como MACRO (básicamente una función), utilizando solo instrucciones compatibles con 8088. Ingrese como cadena en mayúsculas (o +2 bytes para permitir mayúsculas y minúsculas), el resultado de Verdad / Falsificación de salida es
SF == OF
(useJG
oJL
para probar).Los valores de la tabla de diferencia de letras se almacenan como nibbles binarios, por lo que solo toma 13 bytes en total.
Original (54 bytes):
Explicación
Implementado en la sintaxis Intel / MASM como MACRO (básicamente una función), utilizando solo instrucciones compatibles con 8088. Ingresar como cadena, generar el resultado Verdad / Falsificación en Carry Flag. La tabla de puntuación contiene el número de guiones y puntos por letra.
La entrada es mayúscula. Agregue 2 bytes para tomar minúsculas o mixto.
Programa de prueba de ejemplo (como ejecutable COM independiente de IBM PC DOS)
Salida de ejemplo:
Descargar programa de prueba DD.COM
O Pruébelo en línea! No conozco un TIO en línea para vincular directamente a un ejecutable de DOS, sin embargo, puede usar esto con solo unos pocos pasos:
DD Hello
oDD code
al contenido de su corazónfuente
0000h
para la fuente AX: fysnet.net/yourhelp.htmXLAT
hacer exactamente lo que debe hacer. Si realmente estuviera optimizando la velocidad sobre el tamaño, desearía realizar búsquedas del tamaño de WORD. Esto sigue siendo una ganancia de velocidad incluso en el 8088 con su anémico bus externo de 8 bits, porque está duplicando el rendimiento sin aumentar el tamaño del código, excepto por unaXCHG
instrucción o dos.XLAT
), a pesar de que se necesitan 6 bytes para hacer un desplazamiento bit a la derecha en 4 lugares (dentro de aLOOP
).Java (JDK) ,
1311241108464 bytesCuriosamente, "dot" tiene mucho guión y "dash" tiene mucho punto.
Toma la entrada en mayúsculas como un
IntStream
(desplácese hacia abajo para una versión con un realString
de 8 bytes adicionales). He recibido mucha ayuda para jugar golf: gracias a los datos caducados por jugar 20 bytes, a Neil por jugar 26 bytes, a Olivier Grégoire por jugar 18 bytes y a Kevin Cruijssen por jugar 2 bytes.Contiene 26 caracteres no imprimibles dentro de las comillas dobles.
Pruébalo en línea!
Sin golf:
Java (JDK) ,
1311241108472 bytesPara los puristas; toma entrada como a
String
. Gracias a los datos vencidos por jugar al golf 20 bytes, a Neil por jugar al golf 26 bytes y a Olivier Grégoire por jugar al golf 10 bytes.Pruébalo en línea.
Sin golf:
fuente
"35344527512513031462452313".charAt(a-65)-51
?Jalea , 21 bytes
Pruébalo en línea!
¿Cómo?
fuente
05AB1E ,
2221 bytesSalvó un byte gracias a Kevin Cruijssen
Pruébalo en línea!
Explicación
es 35344527512513031462452313 comprimido a la base 255.
fuente
S
.usdgpsahsoaboutlopezgbidol
v = ord(c)*3%83%8
aboutlopez
. Luego busqué otras coincidencias con el mismo multiplicador y módulo. (Por lo tanto, no se garantiza que sea óptimo).C # (compilador interactivo de Visual C #) , 47 bytes
Utiliza el 'hilo mágico' de Level River St. ¡Asegúrese de votar su solución también!
¡No todos los días C # supera a Ruby, Python, Javascript, C, Retina y Perl!
Pruébalo en línea!
fuente
Jalea , 23 bytes
Pruébalo en línea!
fuente
C (gcc) ,
8482817975 bytesAsume todos los gorros.
Pruébalo en línea!
fuente
Python 2 ,
737069 bytesPruébalo en línea!
Solo mayúsculas
-3 bytes, gracias a Erik the Outgolfer
Versión en mayúsculas y minúsculas:
Python 2 ,
7371 bytesPruébalo en línea!
fuente
JavaScript (Node.js) ,
6968 bytesPruébalo en línea!
fuente
Stax , 20 bytes
Ejecutar y depurarlo
Desempaquetado, sin golf y comentado, se ve así.
Ejecute este
fuente
Ruby , 64 bytes
Pruébalo en línea!
Utiliza una cadena mágica de 13 bytes, 2 números
0..7
codificados en cada byte. Resta 3 para un rango-3..4
.El código ASCII para
A
(y tambiénN
) tomado el módulo 13 es por coincidencia, cero.fuente
Retina 0.8.2 , 51 bytes
Pruébalo en línea! El enlace incluye casos de prueba. Solo acepta mayúsculas (+6 bytes para mayúsculas y minúsculas). Robando descaradamente la cadena de @ Arnauld, pero de todos modos iba a usar el mismo algoritmo. Explicación:
Cambie cada letra a la diferencia en números de puntos y guiones, más tres, así que
O=0
yH=7
.Representa la diferencia como ese número de
<
sy tres>
s. (Lamentablemente, no puedo usar puntos porque son especiales en expresiones regulares).Eliminar los pares coincidentes de
<
sy>
s.Comprueba si todavía quedan puntos.
fuente
Bash + coreutils,
6460 bytesPruébalo en línea!
Toma una cadena en minúsculas, genera cero para falsedad, no cero para verdad
Explicación
Utiliza tr y sed para crear un programa de CC que se ve así (para la entrada de ejemplo 'hola'):
fuente
<space>3
conz
(convenientemente, ¡tengo 3 elementos en la pila en ese punto!) Y otro byte reemplazando las comillas alrededor de mi programa sed con una sola barra invertida para escapar de&
R ,
7470 bytesla entrada debe ser minúscula, devuelve VERDADERO o FALSO
Pruébalo en línea
fuente
TI-BASIC (TI-84), 111 bytes
Utilicé la misma cadena para determinar la pesadez de puntos que algunas de las otras respuestas.
El programa devuelve truey (
1
) si la cadena de entrada tiene muchos puntos, y falsey (0
) si no.La cadena de entrada debe estar en mayúsculas.
La entrada se almacena en
Ans
. La salida se almacenaAns
y se imprime automáticamente cuando se completa el programa.Sin golf:
Ejemplo:
Explicación:
(TI-BASIC no tiene comentarios, suponga que
;
indica un comentario)Nota: El recuento de bytes de un programa se evalúa utilizando el valor en [MEM] > [2] > [7] (124 bytes) y luego restando la longitud del nombre del programa
CDGF3
, (5 bytes) y 8 bytes adicionales utilizados para almacenar el programa:124 - 5 - 8 = 111 bytes
fuente
Perl 5
-pF
, 53 bytesPruébalo en línea!
fuente
Factor , 66 bytes
Pruébalo en línea!
fuente
C ++ (compilado con Visual Studio 2017) 171bytes
si tomamos en cuenta el programa principal que existe para fines de prueba también es más.
esta es la variante "ordenada" sin golf
asume todo en minúsculas
fuente
22
debería ser2
.)"132...
y"112...
convertirse"353...
y51
es el valor ASCII de3
c (118 caracteres) devuelve un valor positivo para over-dot-ness y negativo para over-dash-ness
sin golf
fuente
1& ( v > (c[I] - 65))
, que es lo mismov > c[I] - 65
que no puedo imaginar que sea falsa, por lo que podríamos eliminar todo eso mientras analizamos @ceilingcat por 56 bytesMathGolf , 22 bytes
Pruébalo en línea!
Utiliza el mismo método que muchas otras respuestas, donde
ⁿ∩┐↑rⁿ¼~<↔"
representa el número mágico35344527512513031462452313
.fuente
Python 2,
9086 bytestrabajé en mi local con la biblioteca morse . -4 bytes. Gracias por el consejo @JoKing!
Además, es 1 byte más si está en Python 3.
Python 3, 87 bytes
Aunque la pregunta asume que el número de '.'s y' -'s no será igual; en caso de que sean iguales, este código devolverá True.
fuente
input
lugar deraw_input
si quieres ...input
evalúa STDIN antes de pasarlo al programa