[发明专利]字符串处理方法和装置在审
申请号: | 201911358918.2 | 申请日: | 2019-12-25 |
公开(公告)号: | CN111125459A | 公开(公告)日: | 2020-05-08 |
发明(设计)人: | 宋佳城;胡衍平;史晶晶;陈雪丹 | 申请(专利权)人: | 中消云(北京)物联网科技研究院有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 谭惠月 |
地址: | 101300 北京市顺义区临空*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 字符串 处理 方法 装置 | ||
本发明公开了一种字符串处理方法和装置。该方法包括:获取待进行字符串匹配的主串字符和子串字符;将主串字符的排列顺序进行倒置,得到倒置后的主串字符;将子串字符的排列顺序倒置,得到倒置后的子串字符;按照从头到尾的顺序对主串字符和子串字符进行KMP字符串匹配,同时对倒置后的主串字符和倒置后的子串字符进行KMP字符串匹配,得到匹配结果。通过本发明,达到了提高KMP算法字符匹配效率的效果。
技术领域
本发明涉及数据处理领域,具体而言,涉及一种字符串处理方法和装置。
背景技术
字符串的模式匹配是对字符串的基本操作之一,广泛应用于生物信息学、信息检索、拼写检查、语言翻译、数据压缩、网络入侵检测等领域,如何简化其复杂性一直是算法研究中的经典问题。字符串的模式匹配实质上就是寻找模式串P是否在主串T中,以及其出现的位置。
KMP算法可在一个主文本字符串S内查找一个词W的出现位置,通过运用对这个词在不匹配时本身就包含足够的信息来确定下一个匹配将在哪里开始的发现,从而避免重新检查先前匹配的字符。该算法减少了BF算法中i回溯所进行的无谓操作,极大地提高了字符串匹配算法的效率。
但是,由于KMP算法都是从主文本字符串的首位查找的,如果匹配字符串在主串的最后面,那么KMP算法就会显得低效。
针对相关技术中通过传统KMP算法进行字符匹配效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种字符串处理方法和装置,以解决通过传统KMP算法进行字符匹配效率低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种字符串处理方法,该方法包括:获取待进行字符串匹配的主串字符和子串字符;将所述主串字符的排列顺序进行倒置,得到倒置后的主串字符;将所述子串字符的排列顺序倒置,得到倒置后的子串字符;按照从头到尾的顺序对所述主串字符和所述子串字符进行KMP字符串匹配,同时对所述倒置后的主串字符和所述倒置后的子串字符进行KMP字符串匹配,得到匹配结果。
进一步地,所述主串字符数为m,子串字符数为n,按照从头到尾的顺序对所述主串字符和所述子串字符进行KMP字符串匹配,同时对所述倒置后的主串字符和所述倒置后的子串字符进行KMP字符串匹配,得到匹配结果包括:按照从头到尾的顺序对所述主串字符的前m/2+n-1位和所述子串字符进行KMP字符串匹配,同时对所述倒置后的主串字符的前m/2+n-1位和所述倒置后的子串字符进行KMP字符串匹配,得到匹配结果。
进一步地,所述方法还包括:在匹配过程中如果所述主串字符和所述子串字符匹配成功,或者所述倒置后的主串字符和所述倒置后的子串字符匹配成功,则停止继续匹配,返回匹配结果。
进一步地,按照从头到尾的顺序对所述主串字符的前m/2+n-1位和所述子串字符进行KMP字符串匹配,同时对所述倒置后的主串字符的前m/2+n-1位和所述倒置后的子串字符进行KMP字符串匹配,得到匹配结果包括:在未匹配成功的情况下,判断所述主串字符中剩余未匹配的字符的数量是否小于所述子串字符的数量;如果是,则停止继续匹配,返回匹配结果。
进一步地,所述匹配结果包括:如果匹配成功,则返回所述子串字符在所述主串字符中的位置;如果匹配失败,则返回预设的失败指示信息。
为了实现上述目的,根据本发明的另一方面,还提供了一种字符串处理装置,该装置包括:获取单元,用于获取待进行字符串匹配的主串字符和子串字符;第一倒置单元,用于将所述主串字符的排列顺序进行倒置,得到倒置后的主串字符;第二倒置单元,用于将所述子串字符的排列顺序倒置,得到倒置后的子串字符;匹配单元,用于按照从头到尾的顺序对所述主串字符和所述子串字符进行KMP字符串匹配,同时对所述倒置后的主串字符和所述倒置后的子串字符进行KMP字符串匹配,得到匹配结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中消云(北京)物联网科技研究院有限公司,未经中消云(北京)物联网科技研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911358918.2/2.html,转载请声明来源钻瓜专利网。