部分字符串匹配算法

问题描述

我试图找出是否存在能够执行以下操作的算法:

给定一个字符串列表:

{"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