Défi
Étant donné une chaîne décrivant une règle de coupe et une autre chaîne, coupez des parties de la deuxième chaîne en utilisant la règle décrite par la première chaîne.
Les deux chaînes seront constituées de lettres a-z
ou A-Z
, selon celle que vous choisissez (elles ne doivent pas être représentées de la même manière). La façon dont la deuxième chaîne doit être modifiée est décrite ci-dessous:
Algorithme
Prenez la première chaîne et imaginez remplir les espaces entre les lettres non adjacentes (croissantes) avec =
; par exemple, abcfg
=> abc==fg
. Ensuite, alignez les deux chaînes et renvoyez tous les caractères de la première chaîne qui ne sont pas au-dessus d'un signe égal. Par exemple, étant donné abcfg
et qrstuvw
en entrée:
qrstuvw - Modify
abc==fg - Modifier
qrs--vw -> qrsvw
Si le modificateur est plus court après avoir été rempli de signes égaux, tous les caractères de fin de la deuxième chaîne doivent être inclus. Si le modificateur est plus long, les caractères de fin sont ignorés.
Le modificateur n'est pas garanti d'être trié.
Cas de test
abcfg, qrstuvw -> qrsvw
abqrs, qwertyuiopasdfghjklzxcvbnm -> qwjklzxcvbnm
za, qr -> qr
azazaz, qwertyuioplkjhgfdsazxcvbnmnbvcxzasdfghjklpoiuytrewq -> qmn
Implémentation de référence (utilisée pour générer des cas de test) -> TIO
Règles
- Les échappatoires standard s'appliquent
- Vous pouvez prendre la saisie comme deux chaînes, deux listes de caractères, une matrice de caractères, etc. (tout autre format raisonnable est acceptable)
- Vous pouvez produire une chaîne ou une liste de caractères (ou un autre format standard pour les chaînes)
- Il s'agit de code-golf , donc la réponse la plus courte en octets dans chaque langue est déclarée gagnante pour sa langue. Aucune réponse ne sera acceptée.
- L'une ou l'autre chaîne peut être vide.
Bon golf!
Inspiré par les deux derniers défis de Kevin Cruijssen, "Là, je l'ai corrigé (avec du ruban / corde )"
There, I blew it up (with a segfault)