问题描述
我试图找出是否存在能够执行以下操作的算法:
给定一个字符串列表:
{"56B99Z","78K80F","50B49J","28F11F"}
并给定一个输入字符串:
"??B?9?"
那么算法应该输出:
{"56B99Z","50B49J"}
在哪里?是未知字符。
我认为某种在节点之间具有附加链接的特里树可以工作,但如果以前已经这样做过,我不想重新发明轮子。
解决方法
你的问题真的很模糊,你需要更具体,字符串的大小是否相同?如果是这样,您可以查看字符串中不是问号的位置,您会搜索其他字符串,无论如何,如果您正在寻找匹配的字符串算法,我建议您阅读有关给定输入具有线性复杂性的 kmp 算法 => https://en.m.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm
,使用正则表达式匹配 1,2,4,6 位置作为 \w