[发明专利]字符串处理方法、装置、设备及介质在审
申请号: | 202211215514.X | 申请日: | 2022-09-30 |
公开(公告)号: | CN115563353A | 公开(公告)日: | 2023-01-03 |
发明(设计)人: | 丁琪琪 | 申请(专利权)人: | 中国农业银行股份有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 唐强;臧建明 |
地址: | 100005 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 字符串 处理 方法 装置 设备 介质 | ||
本申请提供一种字符串处理方法、装置、设备及介质,涉及计算机技术领域。该方法包括:确定子串集合;将子串集合中的子串存储至字典树中,字典树中的节点用于存储子串中的字符,子串与字典树中的路径一一对应,不同子串之间的公共前缀对应同一路径;从子串集合中取出第一子串,确定初始字符串为第一子串;根据字典树,将子串集合中的剩余子串与初始字符串进行最大前缀匹配,得到第二子串;从子串集合中取出第二子串,将初始字符串与第二子串进行拼接,得到拼接字符串;如果子串集合为空,则确定目标字符串为拼接字符串。从而,将子串保存在字典树结构中,利用字典树实现字符串拼接,以空间换取时间,提高字符串拼接效率。
技术领域
本申请涉及数据处理技术领域,尤其涉及一种字符串处理方法、装置、设备及介质。
背景技术
字符串是由数字、字母、下划线中一类或多类字符组成的一串字符,是最常用的数据结构之一。在软件开发过程中,对字符串的操作处理方式多种多样:在字符串中插入或者删除一个子串或者字符、在字符串中查找并定位某个子串和/或在浏览器搜索框对应的关键词联想功能中进行字符串的最大前缀匹配等。
字符串的拼接也是常见的字符串处理方式之一。一种方式中,为对字符串进行简单拼接,而不是将两个字符串甚至更多的字符串合并为一条最短的字符串,比如将字符串“ABCD”与字符串“CDEF”合并为字符串“ABCDEF”,而不是字符串“ABCDCDEF”。又一种方式中,采用蛮力匹配方法或者KMP(Knuth-Morris-Pratt)匹配方法,将两个字符串甚至更多的字符串合并为一条最短的字符串,然而该方式的时间复杂度较高,效率较低。
因此,对字符串进行最短拼接的时间复杂度较高、效率较低是目前亟需解决的问题。
发明内容
本申请提供一种字符串处理方法、装置、设备及介质,用以解决对字符串进行最短拼接的时间复杂度较高、效率较低的问题。
第一方面,本申请提供一种字符串处理方法,包括:
确定子串集合;
将所述子串集合中的子串存储至字典树中,其中,所述字典树中的节点用于存储所述子串中的字符,所述子串与所述字典树中的路径一一对应,不同子串之间的公共前缀对应同一路径;
从所述子串集合中取出第一子串,确定初始字符串为所述第一子串;
根据所述字典树,将所述子串集合中的剩余子串与所述初始字符串进行最大前缀匹配,得到第二子串;
从所述子串集合中取出所述第二子串,将所述初始字符串与所述第二子串进行拼接,得到拼接字符串;
如果所述子串集合为空,则确定目标字符串为所述拼接字符串。
在一种可行的实现方式中,所述将所述初始字符串与所述第二子串进行拼接,得到拼接字符串之后,还包括:
如果所述子串集合不为空,则将所述初始字符串更新为所述拼接字符串,继续执行下一次的最大前缀匹配操作和拼接操作,直至所述子串集合为空。
在一种可行的实现方式中,所述根据所述字典树,将所述子串集合中的剩余子串与所述初始字符串进行最大前缀匹配,得到第二子串,包括:
根据所述字典树,将所述子串集合中的剩余子串与所述初始字符串进行最大前缀匹配,得到所述初始字符串的最大前缀匹配子串;
如果所述最大前缀匹配子串与所述初始字符串的字符匹配长度大于零,则确定所述第二子串为所述最大前缀匹配子串;
如果所述最大前缀匹配子串与所述初始字符串的字符匹配长度为零,则从所述子串集合的剩余子串中按顺序获取所述第二子串。
在一种可行的实现方式中,所述确定子串集合,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业银行股份有限公司,未经中国农业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211215514.X/2.html,转载请声明来源钻瓜专利网。