假设我有一串用连字符表示空格的数字,定义
string, A := 1212-241321413-21341-3
我有一组我感兴趣的已知数字,
group, G := ( 1, 2)
意思是我不关心订单,12或21.我只是想知道,是否有算法可以找到所有子串及其起始位置,无论多长,只包含1和2( substring必须包含1和a 2并且没有相邻的repitition,即你永远不会看到22或11)
这意味着如果我使用字符串A和组G运行算法,我会得到类似
的内容>> substringfind(A, G)
>>
>> { 1212 : [0], 21 : [9, 15] }
如果算法返回一个字典,其中键作为子字符串,键值作为字符串中起始位置的列表。
另一个例子是
group H := (1, 3, 4)
并且算法将产生
>> substringfind(A, H)
>>
>> { 413 : [7], 1413 : [11], 1341 : [16] }