In questa sfida, il tuo compito è individuare sottostringhe con una determinata struttura.
Ingresso
Il tuo input deve essere due stringhe alfanumeriche non vuote, un modello p e un testo t . L'idea è che ogni personaggio di prappresenta una sottostringa contigua non vuota di tcui si verificano uno accanto all'altro e prappresenta la loro concatenazione. I caratteri identici corrispondono a sottostringhe identiche; ad esempio, il modello aarappresenta qualsiasi quadrato non vuoto (una stringa ottenuta concatenando una stringa più corta a se stessa). Pertanto, il motivo aapuò corrispondere alla sottostringa byebye, con ogni acorrispondenza bye.
Produzione
Se il testo tcontiene una sottostringa che pcorrisponde, allora l'output deve essere quella sottostringa, con due punti :inseriti tra le stringhe che corrispondono ai caratteri di p. Ad esempio, se abbiamo t = byebyenowe p = aa, quindi bye:byeè un output accettabile. Potrebbero esserci diverse opzioni per la sottostringa corrispondente, ma ne dovrai produrre solo una.
Se tnon contiene una sottostringa corrispondente, l'output deve essere una faccia triste :(.
Regole e chiarimenti
Caratteri diversi di ppossono corrispondere a sottostringhe identiche, quindi p = abapossono corrispondere alla stringa AAA. Si noti che i caratteri devono corrispondere a stringhe non vuote; in particolare, se pè più lungo di t, l'output deve essere :(.
È possibile scrivere un programma completo o una funzione, nonché modificare l'ordine dei due ingressi. Vince il conteggio di byte più basso e non sono consentite scappatoie standard.
Casi test
Dato nel formato pattern text -> output. Si noti che potrebbero esistere altre uscite accettabili.
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