比如说从字母c开始向后扫描,首先扫描2个字符看看有没有匹配的,然后扫描3个字符,然后4个,....直到没有。让后从c字母的下一个字母重新开始(这其实不用递归,就是简单的迭代。当然你要一定要说它是递归也行)。 这里的关键是数据结构。比如说ca是一颗词法树(子树)的顶层,它的下层有can、cai、cac等等。基于这样的数据结构进行搜索,你才能制定出“一旦查询3个字符失败,就不用再查询4个或者更多个字符了”的算法来。只有让早晚会失败的查询今早失败,才能让你的算法的运算速度快上几百倍。
62,046
社区成员
669,049
社区内容
加载中
.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。
希望和大家一起共同营造一个活跃、友好的社区氛围。
试试用AI创作助手写篇文章吧