El idioma geobitsiano es una nueva perversión del inglés donde una palabra se divide en segmentos que cada uno debe comenzar con una letra diferente. Luego, cada vez que una de esas letras iniciales aparece en otra cadena, se reemplaza por todo su segmento correspondiente, manteniendo el uso de mayúsculas.
Este proceso se llama Geobitsizing .
Por ejemplo, la palabra " Geobits " podría dividirse geo bits
, y el poema sin sentido
Algy met a Bear
A Bear met Algy
The Bear was bulgy
The bulge was Algy
sería Geobitsized con él como
Algeoy met a Bitsear
A Bitsear met Algeoy
The Bitsear was bitsulgeoy
The bitsulgeoe was Algeoy
porque cada se g
convierte geo
, cada G
(aunque no haya ninguno) se convierte Geo
, cada se b
vuelve bits
y cada se B
vuelve Bits
.
Tenga en cuenta que cada sustitución se realiza con respecto a la cadena original, no a ningún paso intermedio. por ejemplo, si geo
hubiera sido en su gbo
lugar, los b
creados no se reemplazarían por bits
.
Desafío
Escriba un programa o función que pueda generar lenguaje geobitsiano.
Tome una cadena de una sola línea hecha de letras minúsculas (az) y espacios. Esta será la palabra utilizada como argumento de Geobitsizing, con los espacios que separan los segmentos. Puedes asumir:
- Los segmentos no estarán vacíos. Por lo tanto, los espacios no serán vecinos ni estarán al principio o al final de la cadena.
- Cada segmento comienza con una letra diferente. Por lo tanto, no puede haber más de 26.
Por ejemplo, algunas cadenas segmentados válidos debe apoyar son geo bits
, butt ner
, alex
, y do o r k nob
(segmentos de una sola letra no tienen ningún efecto, pero son válidos). Pero geo
, butt ner
, Alex
, y do o r k n ob
no son válidos.
Su programa o función también necesita incluir otra cadena arbitraria para aplicar el Geobitsizing e imprimir o devolver el idioma geobitsiano resultante.
Puede suponer que esta cadena solo contiene nuevas líneas y ASCII imprimible.
Recuerde que las mayúsculas y minúsculas deben conservarse de la entrada a la salida.
Aquí hay algunos ejemplos más que se usan no pro gr am m ing
como argumento de Geobitsizing:
[empty string]
→ [empty string]
i
→ ing
I
→ Ing
Mmmm, mmm... MmmmMMM: m&m!
→ Mmmm, mmm... MmmmMMM: m&m!
(sin cambios)
People think bananas are great, don't you?
→ Proeoprole thingnok bamnoamnoams amre grreamt, dono't you?
Pet a Puppy
Google Wikipedia
↓
Proet am Prouproproy
Groogrle Wingkingproedingam
Tenga en cuenta que los resultados deben ser idénticos sin importar cómo esté organizado el argumento, por ejemplo, ing pro m no am gr
deben producir los mismos resultados que anteriormente.
El código más corto en bytes gana.
\\b${l}(\\S+)
aunque eso te cuesta 5 bytes.
abra cadabra
, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
, que cubra todos los casos límite, y hay muchos de ellos, si uno intenta utilizar expresiones regulares ...
["no", "pro", "gr", "am", "m", "ing"]