В этой задаче ваша задача - найти подстроки с заданной структурой.
вход
Ваш ввод должен состоять из двух непустых буквенно-цифровых строк, шаблона p и текста t . Идея состоит в том, что каждый символ pпредставляет собой непрерывную непустую подстроку, tкоторая находится рядом друг с другом, и pпредставляет их конкатенацию. Одинаковые символы соответствуют одинаковым подстрокам; например, шаблон aaпредставляет собой любой непустой квадрат (строка, полученная путем конкатенации более короткой строки к себе). Таким образом, шаблон aaможет соответствовать подстроке byebye, с каждым aсоответствием bye.
Выход
Если текст tсодержит подстроку, которая pсоответствует, то ваша продукция должна быть этой подстрокой с двоеточиями, :вставленными между строками, которые соответствуют символам p. Например, если у нас есть t = byebyenowи p = aa, то bye:byeэто приемлемый вывод. Может быть несколько вариантов для соответствующей подстроки, но вы должны вывести только один из них.
Если tне содержит подходящей подстроки, ваш вывод должен быть грустным лицом :(.
Правила и разъяснения
Разные символы pмогут соответствовать одинаковым подстрокам, поэтому p = abaмогут соответствовать строке AAA. Обратите внимание, что символы должны соответствовать непустым строкам; в частности, если pоно длиннее t, вывод должен быть :(.
Вы можете написать полную программу или функцию, а также изменить порядок двух входов. Побеждает меньшее количество байтов, и стандартные лазейки запрещены.
Тестовые случаи
Дано в формате pattern text -> output. Обратите внимание, что могут существовать другие приемлемые результаты.
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