Koronkorko ist das finnische Wort für Zinseszins . Wir wollen kein Zinseszins für unsere Zeichenfolgen, also finden wir den kürzestmöglichen regulären Ausdruck, um ihn auszuschließen.
Bestimmen Sie bei einer Zeichenfolge, die nur aus den Großbuchstaben AZ besteht, den kürzestmöglichen regulären Ausdruck, der mit der Zeichenfolge übereinstimmt, wenn er die Teilzeichenfolge nicht enthält KORONKORKO
. Zeichenfolgen, die KORONKORKO
als Teilzeichenfolge enthalten sind, sollten nicht mit dem regulären Ausdruck übereinstimmen.
Nur die Zeichen A
- Z
, [
, ]
, -
, ^
, ,
?
, *
, +
, |
, (
, und )
sollen in dem Ausdruck verwendet werden.
Ich denke, dies kann mit 118 Zeichen im Ausdruck erfolgen. Kannst du es kürzer machen?
Hinweis: Diese Herausforderung stammt von Ohjelmointiputka (auf Finnisch).
!
ist das nicht erlaubt.
-
und ^
innerhalb von Zeichenklassen zuzulassen ( ^
kann also nicht als Anker verwendet werden), und eine Übereinstimmung wird nur gezählt, wenn die gesamte Zeichenfolge mit dem regulären Ausdruck übereinstimmt (dh eine implizite Umgebung ^$
, z im Gegensatz zu normalen "regulären Ausdrücken", die eine Zeichenfolge als übereinstimmend zählen, wenn ein Teil davon mit dem
!
ein erlaubtes Zeichen wäre, hätten Sie es^((?!KORONKORO).)*$
für 19 Bytes tun können .