Sfida
Dato una stringa che descrive una regola di taglio e un'altra stringa, tagliare le parti dalla seconda stringa usando la regola descritta dalla prima stringa.
Entrambe le stringhe saranno costituite da lettere a-zoA-Z , qualunque sia la tua scelta (non devono essere rappresentate allo stesso modo). Di seguito è descritta la modalità di modifica della seconda stringa:
Algoritmo
Prendi la prima stringa e immagina di riempire gli spazi tra le lettere non adiacenti (in aumento) con =; ad esempio, abcfg=> abc==fg. Quindi, allinea le due stringhe e restituisci tutti i caratteri della prima stringa che non sono sopra un segno di uguale. Ad esempio, dato abcfge qrstuvwcome input:
qrstuvw - Modify
abc==fg - Modifier
qrs--vw -> qrsvw
Se il modificatore è più corto dopo aver riempito con uguali segni, dovrebbero essere inclusi tutti i caratteri finali nella seconda stringa. Se il modificatore è più lungo, i caratteri finali vengono ignorati.
Il modificatore non è garantito per essere ordinato.
Casi test
abcfg, qrstuvw -> qrsvw
abqrs, qwertyuiopasdfghjklzxcvbnm -> qwjklzxcvbnm
za, qr -> qr
azazaz, qwertyuioplkjhgfdsazxcvbnmnbvcxzasdfghjklpoiuytrewq -> qmn
Implementazione di riferimento (utilizzata per generare casi di test) -> TIO
Regole
- Si applicano scappatoie standard
- Puoi inserire input come due stringhe, due elenchi di caratteri, una matrice di caratteri, ecc. (È accettabile qualsiasi altro formato ragionevole)
- Puoi generare come stringa o un elenco di caratteri (o un altro formato standard per le stringhe)
- Questo è code-golf , quindi la risposta più breve in byte in ogni lingua è dichiarata vincente per la sua lingua. Nessuna risposta sarà accettata.
- Entrambe le stringhe possono essere vuote.
Buon golf!
Ispirato dalle recenti due sfide di Kevin Cruijssen, "Ecco, l'ho risolto (con nastro / corda )"
There, I blew it up (with a segfault)