Debido a esto, necesita una mejor manera de resolver si una frase es el acrónimo de una palabra. También cree que valdría la pena ver si la frase y la palabra en cuestión son siglas recursivas.
Tu tarea:
Dada una palabra y luego una frase separada por una línea, muestra si la frase es un acrónimo y luego si es un acrónimo recursivo . (La frase contiene lo que significa)
- La entrada se compondrá de caracteres alfabéticos, así como espacios.
- Su programa no debe ser sensible a mayúsculas y minúsculas.
Ejemplo de entrada / salida:
Caso 1:
Entrada:
Acronyms
Acronyms can really obviously narrow your message sensors
Salida:
True
True
Caso 2:
Entrada:
FAQ
frequently asked questions
Salida:
True
False
Caso 3:
Entrada:
foo
bar baz
Salida:
False
False
Caso 4:
Entrada:
GNU
GNU is not Unix
Salida:
False
False
Caso 5:
Entrada:
Aha
A huge Aha
Salida:
True
True
Respuestas:
Pyth,
1918Esto imprime el resultado en un formato bastante extraño, como:
TrueFalse
.Puede probarlo en línea o ejecutar Test Suite .
Explicación:
fuente
Pitón 3, 89
Ahorré un montón de bytes gracias a SOPython.
La parte más complicada de esta solución es
h=tuple(a)==next(zip(*d))
.Esto desempaqueta la lista
d
en zip y luego llamanext
a devolver una tupla del primer elemento de cada iterable pasado,zip
que luego se compara con una tupla de cada letra en un (tuple(a)
).fuente
[0]==l
por.startswith(l)
.CJam,
2120 bytesPruebe este violín en el intérprete de CJam o verifique todos los casos de prueba a la vez.
Cómo funciona
fuente
Haskell,
8180 bytesEl formato de salida no está estrictamente definido, por lo que devuelvo un par de booleanos, por ejemplo,
p "Aha\na huge arm"
->(True,False)
.fuente
<-
), ¡gracias!Scala,
135110108 bytesAhorré algunos bytes usando argumentos de línea de comando (gracias a J Atkin por la pista), colocando los booleanos como tupel, usando en
mkString
lugar denew String
print en lugar de println.EDITAR: malinterpretó la pregunta y tuve que volver a implementar la solución
fuente
Python 3, 106 bytes
Bueno, al menos venció a Scala;)
fuente
AppleScript,
302301297293 BytesAw, demonios sí. Ni siquiera se molestó en perder, esto es competitivo para AppleScript.
Salidas como:
O cualquiera que sea la respuesta.
fuente
PHP, 120 bytes
No ser sensible a mayúsculas y minúsculas es mucho peso (26 bytes). Pasó todos los casos de prueba:
Emite dos valores bool de esta forma:
Lee dos argumentos de la línea de comando, como:
Sin golf
fuente
Rubí,
7774 bytesfuente
Ruby, 52 bytes
Ejemplo:
fuente
Matlab, 90 bytes
Ejemplo (tenga en cuenta que Matlab muestra
true
/false
as1
/0
):fuente
JavaScript ES6,
9592 bytesIngrese ambas cadenas como parámetros. Emite una matriz con dos valores: uno para cada booleano.
fuente
.indexOf
. ¡Buen trabajo! Quizásr=eval(`/^${a}$/i`)
funcionaría en lugar de sur
configuración actual .eval
enRegExp
acortar objetos. ¡Gracias por el consejo!GNU sed, 118 bytes
Requiere
-r
bandera, incluida en el puntaje como +1. Tenga en cuenta que estoy usando\b
para una coincidencia de límites de palabras, aunque no puedo encontrar esto documentado en GNU sed. Que funciona para mí ...Expandido:
fuente
Groovy, 91 bytes
El formato de salida es
[bool, bool]
. Esto toma su entrada de los argumentos de la línea de comando.fuente
Lua 5.3, 182 bytes
fuente
R, 93 bytes
Uso:
fuente
awk
137 bytesT="True";F="False"
para simplificar la salida.NR*NF<2{a=tolower($1)}
: se establecea
solo si la primera línea solo tiene un campo.END{...}
: suponiendo solo dos líneas ...for(i=1;i<=NF;i++)b=b substr(tolower($i),1,1)
: construir acrónimo recursivo.print(a==b?T:F)"\n"(a==tolower($1)?T:F)
: imprime el resultado de ambas comparacionesa==b
ya==tolower($1)
.Si alguien sabe cómo optimizar la construcción de siglas recursivas, no dude en sugerir.
fuente
SpecBAS - 144 bytes
La conversión de las 2 entradas x a mayúsculas guarda los caracteres frente a la conversión en minúsculas. Ahora se pueden realizar múltiples tareas en una sola
LET
declaración, lo que también ayuda. YTEXT
salva un personaje sobrePRINT
.Utiliza 1/0 para mostrar verdadero / falso (el apóstrofe simplemente mueve la salida a la siguiente línea).
fuente
Perl5, 90 bytes
engañando un poco: 0 = todo falso, 1 = uno verdadero, 2 = ambos verdaderos. No soy un jugador de golf, pero estoy molesto porque ¡Perl falta mientras navego!
fuente
JavaScript (ES6) 93
Pruebe a ejecutar el fragmento a continuación en cualquier navegador compatible con EcmaScript 6
fuente
JavaScript (ES6),
899695 bytesShucks ... pensé que tenía todo resuelto, pero aparentemente estaba equivocado.
Esto define una función anónima que toma la entrada como dos cadenas y devuelve una matriz de dos elementos booleanos. El primer elemento se calcula comparando la primera cadena en minúsculas con el primer carácter de cada palabra en la segunda cadena. El segundo elemento se calcula simplemente comprobando si la segunda cadena contiene el primero.
Aquí hay otra solución para el segundo elemento; 2 bytes más cortos, pero muy pocos navegadores lo admiten:
fuente
GNU: Gnus nettle unicorns
ReferenceError: l is not defined
(faltal=
antestoLowerCase
)'GNU','GNU is not unix'
(caso de prueba 4) debería ser falso, falsol=
mientras buscaba un error y olvidé volver a colocarlo. ¡Gracias por mencionar eso! El otro caso de prueba también debe arreglarse.Pyke (no tenía título cuando se publicó), (no competitivo), 20 bytes
Puedes encontrar el código fuente aquí , el idioma es completamente inestable (primer desafío de prueba para él), así que no espere que funcione en el futuro (commit 8)
O 18 bytes (estable)
Pruébalo aquí!
fuente