RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
怎么使用Jerry列出金庸小说中使用过的成语-创新互联

本篇内容主要讲解“怎么使用Jerry列出金庸小说中使用过的成语”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Jerry列出金庸小说中使用过的成语”吧!

创新互联是一家专业提供苏尼特左企业网站建设,专注与网站设计制作、网站建设H5网站设计、小程序制作等业务。10年已为苏尼特左众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

Jerry简单讲下实现原理。Web应用里有一个文本文件,里面维护了汉语里全部的成语,通过分号分隔。

怎么使用Jerry列出金庸小说中使用过的成语

运行时,这些内容会被加载到内存中,构建成一棵树,如下图所示:

怎么使用Jerry列出金庸小说中使用过的成语

其中叶节点以属性end为true区分。

成语检索的核心逻辑位于search函数里,让我们用《笑傲江湖》里一句响亮的口号“日月神教千秋万载,一统江湖”来单步调试,了解其实现逻辑。

怎么使用Jerry列出金庸小说中使用过的成语

进入165行的外层while循环,再进入173行的内层for循环,检测是否有测试字符串第一个字符“日”开头的成语。因为成语是由4个字符组成,所以需要用内层for循环逐一试探,如果遇到tblCur.end为true的元素,说明在测试字符串中发现了一个成语。

下图是内层for循环第一次执行后的tblCur内容:

怎么使用Jerry列出金庸小说中使用过的成语

内层循环执行第二次,此时tblCur指向一棵由所有“日月”开头的成语组成的树:

怎么使用Jerry列出金庸小说中使用过的成语

执行内层循环的第三次迭代,因为在树“日-月”这个分支下面没有“神”这个节点,所以结束当前的内层循环,通过break返回到外层的while循环,进行输入字符串第二个字符“月”的新一轮试探,以此类推。

怎么使用Jerry列出金庸小说中使用过的成语

最后从“千”这个字符出发,沿着内存中的树经过路径"秋-万",最后来到end属性为true的叶节点“载”,记下“千”在输入字符串中的偏移量,存到一个数组arrMatch中去。

怎么使用Jerry列出金庸小说中使用过的成语

怎么使用Jerry列出金庸小说中使用过的成语

待输入字符串全部试探完毕后,根据arrMatch中存放的偏移量,高亮显示对应的字符串,完成检索。

怎么使用Jerry列出金庸小说中使用过的成语

树这个数据结构在这个需求的实现里有着完美的表现。

到此,相信大家对“怎么使用Jerry列出金庸小说中使用过的成语”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


当前文章:怎么使用Jerry列出金庸小说中使用过的成语-创新互联
文章出自:http://lswzjz.com/article/ccgios.html