【问题标题】:String completion and matching algorithm字符串补全和匹配算法
【发布时间】:2013-06-17 06:43:52
【问题描述】:

您有两个集合:S1={B,C,D,T,M,...}S2={with each other letter of alphabet not present in S1}. 现在,我有一些由 S1 (ie. BBWRD) 中的辅音构成的字符串,我想根据提供的字典 (ie. dict from spelling mechanism). 将其转换为单词/句子 算法可以用来自 S2 的任意数量的字母填充'base word' 中每个字母之间的空格。不能更改顺序,也不能使用 S1 中的字母/辅音。

我唯一想到的是正则表达式的使用。你能提出任何其他更好的方法吗?或者至少给这种算法命名,以便我可以进一步搜索。

【问题讨论】:

    标签: c++ string-matching


    【解决方案1】:

    我会考虑创建一个搜索树。每个节点都有|S1| 子节点,叶子包含一个可能的单词列表,这些单词可以由给定的首字母缩略词构成(例如,路径W->R->D 上的=D 将包含“Word”。这样的树会非常快,尽管它需要存储大量内存以便快速访问。

    【讨论】:

    • 您在存储和搜索可能的单词时给出了一个可能的解决方案。但是如何用给定的首字母缩写词创建这个候选者呢?
    • 你有字典,对吧?这很简单 - 只需通过分析单词来构建树:来自 S1 的字母应该让您进入树中的特定路径,来自 S2 的字母应该被忽略,如果您到达单词的末尾,将其存储在树节点中,您目前所在的位置。
    猜你喜欢
    • 2012-02-20
    • 1970-01-01
    • 2013-12-24
    • 2016-07-19
    • 2021-11-06
    • 2012-07-24
    • 2010-09-08
    • 2013-07-02
    • 1970-01-01
    相关资源
    最近更新 更多