Desafío
Dada una cadena que describe una regla de corte y otra cadena, corte partes de la segunda cadena usando la regla descrita por la primera cadena.
Ambas cadenas consistirán en letras a-zo A-Z, cualquiera que elija (no tienen que estar representadas de la misma manera). La forma en que se modificará la segunda cadena se describe a continuación:
Algoritmo
Tome la primera secuencia e imagine llenar los espacios entre letras no adyacentes (crecientes) con =; por ejemplo, abcfg=> abc==fg. Luego, alinee las dos cadenas y devuelva todos los caracteres de la primera cadena que no estén por encima de un signo igual. Por ejemplo, dado abcfgy qrstuvwcomo entradas:
qrstuvw - Modify
abc==fg - Modifier
qrs--vw -> qrsvw
Si el modificador es más corto después de rellenar con signos iguales, se deben incluir todos los caracteres finales en la segunda cadena. Si el modificador es más largo, los caracteres finales se ignoran.
No se garantiza que el modificador esté ordenado.
Casos de prueba
abcfg, qrstuvw -> qrsvw
abqrs, qwertyuiopasdfghjklzxcvbnm -> qwjklzxcvbnm
za, qr -> qr
azazaz, qwertyuioplkjhgfdsazxcvbnmnbvcxzasdfghjklpoiuytrewq -> qmn
Implementación de referencia (utilizada para generar casos de prueba) -> TIO
Reglas
- Se aplican lagunas estándar
- Puede tomar la entrada como dos cadenas, dos listas de caracteres, una matriz de caracteres, etc. (se acepta cualquier otro formato razonable)
- Puede generar una cadena o una lista de caracteres (o algún otro formato estándar para cadenas)
- Este es el código de golf , por lo que la respuesta más corta en bytes en cada idioma se declara ganador de su idioma. No se aceptarán respuestas.
- Cualquiera de las cadenas puede estar vacía.
¡Feliz golf!
Inspirado por los dos desafíos recientes de Kevin Cruijssen, "Allí, lo arreglé (con cinta / cuerda )"
There, I blew it up (with a segfault)