[发明专利]基于编码的字符串检索方法、装置及电子设备有效
申请号: | 202010078611.3 | 申请日: | 2020-02-03 |
公开(公告)号: | CN111309988B | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 李育国;刘建辉;舒彦博 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 朱智勇 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 编码 字符串 检索 方法 装置 电子设备 | ||
1.一种基于编码的字符串检索方法,其特征在于,包括:
对字符串的长度进行计算,以得到字符串长度值L;
将所述字符串中所有字符值的总和进行基于N值的取模运算,得到所述字符串的编码值C;
基于所述字符串长度值L和所述字符串的编码值C,构建所述字符串的索引值列表;所述构建所述字符串的索引值列表包括:将所述字符长度值L相等的字符分在同一个大组;在所述大组内,将具有相同字符串的编码值C的字符串分配在同一个小组;对每个小组内包含的字符串进行索引值设置;其中,所述索引值是原字符串存储列表中字符串的索引值;
基于所述索引值列表中的编码,对字符串执行检索操作。
2.根据权利要求1所述的方法,其特征在于,所述对字符串的长度进行计算,包括:
设置字符串长度计算函数;
基于所述字符串长度计算函数,计算所述字符串的长度。
3.根据权利要求2所述的方法,其特征在于,所述基于所述字符串长度计算函数,计算所述字符串的长度,包括:
判断所述字符串中是否包含结束符;
若是,统计结束符之前字符串中字符的个数,以获得所述字符串的长度。
4.根据权利要求1所述的方法,其特征在于,所述将所述字符串中所有字符值的总和进行基于N值的取模运算之前,所述方法还包括:
预先设置用于取模计算的N值。
5.根据权利要求1所述的方法,其特征在于,所述将所述字符串中所有字符值的总和进行基于N值的取模运算之前,所述方法还包括:
预先计算所述字符串中所有字符值的总和。
6.根据权利要求1所述的方法,其特征在于,所述对每个小组内包含的字符串进行索引值设置,包括:
获取所述字符串在之前存储列表中的原索引值;
将所述原索引值作为所述字符串在所述小组内的索引值。
7.根据权利要求1所述的方法,其特征在于,所述基于所述索引值列表中的编码,对字符串执行检索操作,包括:
获取待检索字符串T的长度LT,以便于基于LT确定所述字符串所对应的大组;
计算待检索字符串T的编码CT,在所述小组分组里找到CT所对应的索引值列表;
根据找到的CT所对应的索引值列表,对比相应位置上的字符串是否为需要检索的内容。
8.一种基于编码的字符串检索装置,其特征在于,包括:
计算模块,用于对字符串的长度进行计算,以得到字符串长度值L;
取模模块,用于将所述字符串中所有字符值的总和进行基于N值的取模运算,得到所述字符串的编码值C;
构建模块,用于基于所述字符串长度值L和所述字符串的编码值C,构建所述字符串的索引值列表;具体用于将所述字符长度值L相等的字符分在同一个大组;在所述大组内,将具有相同字符串的编码值C的字符串分配在同一个小组;对每个小组内包含的字符串进行索引值设置;其中,所述索引值是原字符串存储列表中字符串的索引值;
检索模块,用于基于所述索引值列表中的编码,对字符串执行检索操作。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述权利要求1-7中任一项所述的基于编码的字符串检索方法。
10.一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述权利要求1-7中任一项所述的基于编码的字符串检索方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010078611.3/1.html,转载请声明来源钻瓜专利网。