Herausforderung
Schneiden Sie bei einer Zeichenfolge, die eine Schnittregel und eine andere Zeichenfolge beschreibt, Teile aus der zweiten Zeichenfolge mit der von der ersten Zeichenfolge beschriebenen Regel aus.
Beide Zeichenfolgen bestehen aus Buchstaben a-zoder A-Z, je nachdem, welche Sie auswählen (sie müssen nicht auf die gleiche Weise dargestellt werden). Die Art und Weise, wie die zweite Zeichenfolge geändert werden soll, ist nachfolgend beschrieben:
Algorithmus
Nehmen Sie die erste Zeichenfolge und stellen Sie sich vor, Sie füllen die Lücken zwischen nicht benachbarten (aufsteigenden) Buchstaben mit =; zum Beispiel abcfg=> abc==fg. Richten Sie dann die beiden Zeichenfolgen aus und geben Sie alle Zeichen aus der ersten Zeichenfolge zurück, die nicht über einem Gleichheitszeichen liegen. Zum Beispiel gegeben abcfgund qrstuvwals Eingaben:
qrstuvw - Modify
abc==fg - Modifier
qrs--vw -> qrsvw
Wenn der Modifikator nach dem Ausfüllen mit Gleichheitszeichen kürzer ist, sollten alle nachfolgenden Zeichen in der zweiten Zeichenfolge enthalten sein. Wenn der Modifikator länger ist, werden die nachfolgenden Zeichen ignoriert.
Es ist nicht garantiert, dass der Modifikator sortiert ist.
Testfälle
abcfg, qrstuvw -> qrsvw
abqrs, qwertyuiopasdfghjklzxcvbnm -> qwjklzxcvbnm
za, qr -> qr
azazaz, qwertyuioplkjhgfdsazxcvbnmnbvcxzasdfghjklpoiuytrewq -> qmn
Referenzimplementierung (zum Generieren von Testfällen) -> TIO
Regeln
- Es gelten Standardlücken
- Sie können Eingaben als zwei Zeichenfolgen, zwei Listen von Zeichen, eine Matrix von Zeichen usw. annehmen (jedes andere vernünftige Format ist akzeptabel).
- Sie können eine Zeichenfolge oder eine Liste von Zeichen (oder ein anderes Standardformat für Zeichenfolgen) ausgeben.
- Dies ist Codegolf , daher wird die kürzeste Antwort in Bytes in jeder Sprache zum Gewinner ihrer Sprache erklärt. Es wird keine Antwort akzeptiert.
- Beide Zeichenfolgen können leer sein.
Viel Spaß beim Golfen!
Inspiriert von Kevin Cruijssens jüngsten zwei Herausforderungen: "Dort habe ich es repariert (mit Klebeband / Seil )."
There, I blew it up (with a segfault)