In dieser Herausforderung besteht Ihre Aufgabe darin, Teilzeichenfolgen mit einer bestimmten Struktur zu lokalisieren.
Eingang
Ihre Eingabe besteht aus zwei nicht leeren alphanumerischen Zeichenfolgen, einem Muster p
und einem Text t
. Die Idee ist, dass jedes Zeichen von p
eine zusammenhängende nicht leere Teilzeichenfolge darstellt, t
die nebeneinander auftritt, und p
deren Verkettung darstellt. Identische Zeichen entsprechen identischen Teilzeichenfolgen. Das Muster aa
stellt beispielsweise ein beliebiges nicht leeres Quadrat dar (eine Zeichenfolge, die durch Verketten einer kürzeren Zeichenfolge mit sich selbst erhalten wird). Somit kann das Muster bei jeder Übereinstimmung mit aa
der Teilzeichenfolge übereinstimmen .byebye
a
bye
Ausgabe
Wenn der Text t
eine p
übereinstimmende :
Teilzeichenfolge enthält , ist Ihre Ausgabe diese Teilzeichenfolge, wobei Doppelpunkte zwischen die Zeichenfolgen eingefügt werden, die den Zeichen von entsprechen p
. Zum Beispiel, wenn wir haben t = byebyenow
und p = aa
dann bye:bye
eine akzeptable Ausgabe. Es kann mehrere Möglichkeiten für den passenden Teilstring geben, Sie sollen jedoch nur eine davon ausgeben.
Wenn t
keine passende Teilzeichenfolge enthalten ist, ist Ihre Ausgabe ein trauriges Gesicht :(
.
Regeln und Erläuterungen
Verschiedene Zeichen von p
können identischen Teilzeichenfolgen entsprechen, sodass p = aba
sie mit der Zeichenfolge übereinstimmen können AAA
. Beachten Sie, dass die Zeichen nicht leeren Zeichenfolgen entsprechen müssen. Insbesondere wenn p
länger als ist t
, muss die Ausgabe sein :(
.
Sie können ein vollständiges Programm oder eine Funktion schreiben und die Reihenfolge der beiden Eingänge ändern. Die niedrigste Byteanzahl gewinnt, und Standardlücken sind nicht zulässig.
Testfälle
Im Format angegeben pattern text -> output
. Beachten Sie, dass möglicherweise andere zulässige Ausgaben vorhanden sind.
a Not -> N
aa Not -> :(
abcd Not -> :(
aaa rerere -> re:re:re
xx ABAAAB -> A:A
MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA
x33x 10100110011001 -> 10:1001:1001:10
abcacb 0a00cca0aa0cc0ca0aa0c00c0aaa0c -> c:a0aa:0c:c:0c:a0aa
abccab 0a00cca0aa0cc0ca0aa0c00c0aaa0c -> a:a:0c0:0c0:a:a
abcbcab 0a00cca0aa0cc0ca0aa0c00c0aaa0c -> :(
abcbdcab 0a00cca0aa0cc0ca0aa0c00c0aaa0c -> 00:c:ca0aa0c:c:0:ca0aa0c:00:c
O(2^((n * (n + 1))/2))
: P