Saltar al contenido

¿En qué idioma es esta palabra?

Presta atención ya que en este post encontrarás la solución que buscas.

Solución:

Retina, 51 bytes

.*[aeio]$
1
A`en$|ch|ei|au
^$
2
A`[jkz]|gy|m$
D+
4

Se me ocurrieron las expresiones regulares y @MartinBüttner hizo la conversión a/golfing en Retina, así que… ¿hurra por el esfuerzo de equipo?

el mapeo es 1 -> Italian, 2 -> German, (empty) -> Hungarian, 4 -> Englishsiendo el importe clasificado en cada categoría 4506 + 1852 + 2092 + 3560 = 12010.

¡Pruébelo en línea! | Versión multilínea modificada

Explicación

En primer lugar, el Python equivalente es algo como esto:

import re
def f(s):
  if re.search("[aeio]$", s):
    return 1
  if re.search("en$|ch|ei|au", s):
    return 2
  if re.search("[jkz]|gy|m$", s):
    return ""
  return 4

Déjame decir eso o$ es un excelente indicador de italiano.

La versión Retina es similar, con pares de líneas que forman etapas de reemplazo. Por ejemplo, las dos primeras líneas

.*[aeio]$
1

reemplaza las coincidencias de la primera línea con el contenido de la segunda.

Las siguientes tres líneas hacen lo mismo, pero usando el modo anti-grep de Retina – anti-grep (especificado con A`) elimina la línea si coincide con la expresión regular dada, y las siguientes dos líneas son un reemplazo de una línea vacía a la salida deseada.

A`en$|ch|ei|au
^$
2

La siguiente línea usa anti-grep nuevamente, pero no reemplaza la línea vacía, lo que proporciona una salida fija para húngaro.

A`[jkz]|gy|m$

Finalmente, las dos últimas líneas.

D+
4

reemplaza una línea no vacía que no es un dígito con 4. Todas las sustituciones solo pueden ocurrir si no se activó ninguna sustitución anterior, simulando una if/else if cadena.

Si te gustó nuestro trabajo, eres capaz de dejar un enunciado acerca de qué te ha gustado de esta crónica.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *