Heva este extraño texto donde los vewols parecen estar clasificados:
Soy un texto mal escrito. Un tipo loco jugaba con el orden de las vocales. Por favor arreglame!
Por lo tanto, necesitaría un pragrom que pueda calificar a los vewols (y la letra 'y' como parece) para que el texto se pueda volver a leer.
Ouy puede elegir el lungaega de ouyr chieco privedod ouy meka un cempleto pragrom (así que no solo un finctoun). El año puede ser un campo sin título, un mensaje de texto o el cammond leni. El uutpot mya olsa vyra como ouy leki.
De cuerso, anvilid yna pragrom uutpitong malos textos. No hay vulea en un pragrom que mekas mensajes de texto que no se pueden entender. Pero puede escribir sus cemmonts y qeistouns en textos de ratetod si lo desea.
Aclaraciones
- Su programa solo es necesario para manejar texto ASCII.
- A los fines de esta pregunta, los siguientes caracteres son vocales:
aeiouy
- Las posiciones de las vocales dentro de cada palabra deben rotarse. Existe cierta flexibilidad para decidir qué califica como palabra: el requisito mínimo es que dos caracteres separados por un espacio estén en palabras diferentes, y que dos caracteres alfabéticos (
a-zA-Z
) separados solo por caracteres alfabéticos estén en la misma palabra. - La dirección de rotación deseada debe deducirse de los casos de prueba a continuación.
Casos de prueba
Entrada: I'm a badly written text. Some lunatic guy played with the order of vowels. Please fix me !
Salida:I'm a bydla wrettin text. Semo lanituc gyu plyead with the erdor of vewols. Plaese fix me !
Entrada: AeiOuy
Salida:EioUya
Entrada: Hyphenated-word
Salida: Hephanetyd-word
oHephanetod-wyrd
aeiouAEIOU
ASCII / Latín básico; esos puntos de código más cualquier otro en el Suplemento de latín básico y latín-1 que tengan esos caracteres básicos combinados con un signo diacrítico) , la pregunta debe ser explícita.Respuestas:
GolfScript,
686757 caracteresLa entrada debe darse en STDIN. Ejemplo (en línea ):
fuente
Ruby,
9190 caracteresCoffeescript, 148 charectars
No ussimtoans, excepto que "holf-cerract" es una palabra, y no mi sulitoon.
Prueba:
fuente
$&
lugar delgsub()
parámetro y del segundo bloque; 2) ahorre 1 carácter usando en?Z
lugar de'Z'
.$&
no se puede usar porque se cambia antes de usarlo.z=$'[r]
lo cambia En cuanto a?Z
- gracias, me olvidé por completo de esta sintaxis.Haskell, 159 caracteres
No terminó tan corto como esperaba, pero decidí publicarlo de todos modos:
Versión sin golf:
Este es un buen ejemplo de cómo la evaluación perezosa puede permitirte hacer trucos geniales. En
rotateVowels
, cada vez que se encuentra una nueva vocal, se pasa a la izquierda, mientras se reemplaza con la que viene de la derecha. Esta parte de la salida del pliegue se realimenta como entrada para que la vocal más a la izquierda se convierta en el reemplazo de la más a la derecha.fuente
Python 2 , 172 bytes
Pruébalo en línea!
fuente