在这种挑战下,您的任务是找到具有给定结构的子字符串。
输入项
您的输入应为两个非空的字母数字字符串,一个模式 p
和一个text 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