[发明专利]确定最长公共子序列的方法和装置在审
申请号: | 201611075708.9 | 申请日: | 2016-11-28 |
公开(公告)号: | CN106777920A | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 胡伟东 | 申请(专利权)人: | 北京小度互娱科技有限公司 |
主分类号: | G06F19/00 | 分类号: | G06F19/00 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙)11201 | 代理人: | 张大威 |
地址: | 100193 北京市海淀区西北旺东路*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 确定 最长 公共 序列 方法 装置 | ||
技术领域
本发明涉及互联网技术领域,特别涉及一种确定最长公共子序列的方法和装置。
背景技术
LCS(Longest Common Subsequence,最长公共子序列)算法是计算机科学领域比较经典的算法,用来比较序列的相似程度,具体说是用来寻找多个序列(一般是两个)最长公共子序列的一种算法。
相关技术中,通常采用动态规划算法或者一些优化的动态规划算法来确定两个序列之间的最长公共子序列。例如,节省内容的LCS算法,该算法在原有动态规划算法的基础上,对算法空间优化,以减少算法所占的空间。然而,相关的动态规范算法在最长公共子序列查找的最坏和最好时间复杂度都是O(mn),(其中m,n分别为2个匹配串的长度),在大部分实际数据的运算中时间较慢,不适合大规模计算。
发明内容
本发明旨在至少在一定程度上解决上述技术问题。
为此,本发明的第一个目的在于提出一种确定最长公共子序列的方法,提出了一种新的确定最长公共子序列的方式,该方法利用哈希表和动态数组计算最长公共子序列,对LCS算法的时间进行优化,降低了运算时间,提高了确定最长公共子序列的效率。
本发明的第二个目的在于提出一种确定最长公共子序列的装置。
为达上述目的,根据本发明第一方面实施例提出了一种确定最长公共子序列的方法,包括以下步骤:获取待匹配的第一字符序列和第二字符序列,其中,所述第一字符序列的长度为m,所述第二字符序列的长度为n,m大于或者等于n;根据所述第一字符序列构建以所述第一字符序列中的字符为关键字,并以对应字符的位置值为哈希值的哈希表;根据预设规则、所述第二字符序列和所述哈希表更新一维动态数组和二维动态数组,并获取遍历所述第二字符序列中最后一个字符之后所获得的目标一维数组和目标二维数组,其中,所述目标一维数组的长度N为所述第一字符序列与第二字符序列的最长公共子序列的长度,所述目标一维数组用于保存长度为i的公共子序列中最后一个字符最小的位置值,所述目标二维数组的第j行用于保存长度为j的公共子序列中最后一个字符所有的位置值,其中,i和j均为大于零,且小于或者等于N的整数;根据所述第一字符序列、所述目标一维数组和所述目标二维数组确定最长公共子序列。
根据本发明实施例的确定最长公共子序列的方法,在确定第一字符序列和第二字符序列的最长公共子序列的过程中,根据第一字符序列构建一个以字符为关键字,以字符对应的位置值为哈希值的哈希表,并根据预设规则、第二字符序列和哈希表更新一维动态数组和二维动态数组,并获取遍历第二字符序列中最后一个字符之后所获得的目标一维数组和目标二维数组,以及根据第一字符序列、目标一维数组和目标二维数组确定最长公共子序列。由此,提出了一种新的确定最长公共子序列的方式,该方法利用哈希表和动态数组计算最长公共子序列,对LCS算法的时间进行优化,降低了运算时间,提高了确定最长公共子序列的效率。
为达上述目的,本发明第二方面实施例提出了一种确定最长公共子序列的装置,包括:获取模块,用于获取待匹配的第一字符序列和第二字符序列,其中,所述第一字符序列的长度为m,所述第二字符序列的长度为n,m大于或者等于n;构建模块,用于根据所述第一字符序列构建以所述第一字符序列中的字符为关键字,并以对应字符的位置值为哈希值的哈希表;处理模块,用于根据预设规则、所述第二字符序列和所述哈希表更新一维动态数组和二维动态数组,并获取遍历所述第二字符序列中最后一个字符之后所获得的目标一维数组和目标二维数组,其中,所述目标一维数组的长度N为所述第一字符序列与第二字符序列的最长公共子序列的长度,所述目标一维数组用于保存长度为i的公共子序列中最后一个字符最小的位置值,所述目标二维数组的第j行用于保存长度为j的公共子序列中最后一个字符所有的位置值,其中,i和j均为大于零,且小于或者等于N的整数;确定模块,用于根据所述第一字符序列、所述目标一维数组和所述目标二维数组确定最长公共子序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京小度互娱科技有限公司,未经北京小度互娱科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611075708.9/2.html,转载请声明来源钻瓜专利网。
- 同类专利
- 专利分类
G06F 电数字数据处理
G06F19-00 专门适用于特定应用的数字计算或数据处理的设备或方法
G06F19-10 .生物信息学,即计算分子生物学中的遗传或蛋白质相关的数据处理方法或系统
G06F19-12 ..用于系统生物学的建模或仿真,例如:概率模型或动态模型,遗传基因管理网络,蛋白质交互作用网络或新陈代谢作用网络
G06F19-14 ..用于发展或进化的,例如:进化的保存区域决定或进化树结构
G06F19-16 ..用于分子结构的,例如:结构排序,结构或功能关系,蛋白质折叠,结构域拓扑,用结构数据的药靶,涉及二维或三维结构的
G06F19-18 ..用于功能性基因组学或蛋白质组学的,例如:基因型–表型关联,不均衡连接,种群遗传学,结合位置鉴定,变异发生,基因型或染色体组的注释,蛋白质相互作用或蛋白质核酸的相互作用