[发明专利]确定最长公共子序列的方法和装置在审

专利信息
申请号: 201611075708.9 申请日: 2016-11-28
公开(公告)号: CN106777920A 公开(公告)日: 2017-05-31
发明(设计)人: 胡伟东 申请(专利权)人: 北京小度互娱科技有限公司
主分类号: G06F19/00 分类号: G06F19/00
代理公司: 北京清亦华知识产权代理事务所(普通合伙)11201 代理人: 张大威
地址: 100193 北京市海淀区西北旺东路*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 确定 最长 公共 序列 方法 装置
【权利要求书】:

1.一种确定最长公共子序列的方法,其特征在于,包括以下步骤:

获取待匹配的第一字符序列和第二字符序列,其中,所述第一字符序列的长度为m,所述第二字符序列的长度为n,m大于或者等于n;

根据所述第一字符序列构建以所述第一字符序列中的字符为关键字,并以对应字符的位置值为哈希值的哈希表;

根据预设规则、所述第二字符序列和所述哈希表更新一维动态数组和二维动态数组,并获取遍历所述第二字符序列中最后一个字符之后所获得的目标一维数组和目标二维数组,其中,所述目标一维数组的长度N为所述第一字符序列与第二字符序列的最长公共子序列的长度,所述目标一维数组用于保存长度为i的公共子序列中最后一个字符最小的位置值,所述目标二维数组的第j行用于保存长度为j的公共子序列中最后一个字符所有的位置值,其中,i和j均为大于零,且小于或者等于N的整数;

根据所述第一字符序列、所述目标一维数组和所述目标二维数组确定最长公共子序列。

2.如权利要求1所述的方法,其特征在于,所述根据预设规则、所述第二字符序列和所述哈希表更新一维动态数组和二维动态数组,包括:

按顺序遍历所述第二字符序列中的每个字符,判断所述哈希表中是否存在当前字符的哈希值;

若判断所述哈希表中存在当前字符的哈希值,则进一步判断当前字符的哈希值的个数是否为多个;

若判断当前字符的哈希值的个数为多个,则按照哈希值从大到小的顺序遍历所述当前字符的哈希值;

在遍历当前字符的每个哈希值时,判断当前一维动态数组是否为空;

如果判断当前一维动态数组为空,则根据所述当前字符的当前哈希值更新当前一维动态数组和当前二维动态数组;

如果判断当前一维动态数组为非空,则根据当前哈希值和当前一维动态数组中最后一个元素的取值更新当前一维动态数组和当前二维动态数组。

3.如权利要求2所述的方法,其特征在于,所述根据当前哈希值和当前一维动态数组中最后一个元素的取值更新当前一维动态数组和当前二维动态数组,包括:

判断当前哈希值是否大于当前一维动态数组中最后一个元素的取值;

若判断当前哈希值大于当前一维动态数组中最后一个元素的取值,则将当前哈希值添加至当前一维动态数组中最后一个元素之后,并为当前二维动态数组新增加一行以及将当前哈希值增加到新增加的行中;

若判断当前哈希值小于或者等于当前一维动态数组中最后一个元素的取值,则根据当前哈希值对当前一维动态数组进行二分查找,以获取二分查找返回的下标值,用当前哈希值替换一维动态数组中下标值对应的元素,并根据返回的下标值确定当前二维动态数组中相应的行数,并在当前二维动态数组中相应的行中增加当前哈希值,并将当前哈希值作为当前二维动态数组中相应的行的第一个元素。

4.如权利要求1所述的方法,其特征在于,所述根据所述第一字符序列、所述目标一维数组和所述目标二维数组确定最长公共子序列,包括:

S41,将N-1作为中间变量k的取值;

S42,将所述目标一维数组中最后一个元素的取值作为位置阈值;

S43,根据所述目标一维数组中最后一个元素的取值,从所述第一字符序列中获取对应位置值上的字符,并将所获取的字符作为第一最长公共子序列的第一个元素;

S44,将中间变量k的取值减1之后所获得的取值作为中间变量k的当前取值;

S45,判断中间变量k的当前取值是否大于或者等于零,若是,则执行步骤S46至S47之后,返回步骤S44,若否,则执行步骤S48;

S46,根据中间变量k的当前取值确定所述目标二维元素的行数,并从所述目标二维数组中对应行中查找小于位置阈值的元素,并根据小于位置阈值的元素中的最大值更新位置阈值;

S47,根据更新后的位置阈值,从所述第一字符序列中获取对应位置值上的字符,并将所获取的字符添加至第一最长公共子序列中;

S48,将当前获得的第一最长公共子序列进行反序处理,并将反序处理的结果作为所述最长公共子序列。

5.如权利要求4所述的方法,其特征在于,所述从所述目标二维数组中对应行中查找小于位置阈值的元素,并根据小于位置阈值的元素中的最大值更新位置阈值,包括:

以位置阈值为值,二分查找所述目标二维数组中对应行中小于位置阈值的元素的最大值,并通过最大值更新位置阈值。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京小度互娱科技有限公司,未经北京小度互娱科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201611075708.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top