[发明专利]字符处理方法、装置、计算机设备及存储介质在审
申请号: | 202010670485.0 | 申请日: | 2020-07-13 |
公开(公告)号: | CN113934892A | 公开(公告)日: | 2022-01-14 |
发明(设计)人: | 王宇;许鑫城 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/903 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张所明 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 字符 处理 方法 装置 计算机 设备 存储 介质 | ||
1.一种字符处理方法,其特征在于,所述方法包括:
接收携带目标字符串的存储指令,所述目标字符串包括按顺序排列的多个目标字符;
按照所述多个目标字符的排列顺序遍历所述多个目标字符,对于当前遍历的目标字符,执行如下步骤:
确定字典树中的第一节点;所述目标字符是所述目标字符串中的第一个字符的情况下,所述第一节点为所述字典树中的根节点,或者,所述目标字符不是所述目标字符串中的第一个字符的情况下,所述第一节点为所述目标字符的上一个字符所在的节点;
所述第一节点存在子节点,则创建链表,作为所述子节点的兄弟节点;
在所述链表中存储所述目标字符。
2.根据权利要求1所述的方法,其特征在于,所述确定字典树中的第一节点之后,所述方法还包括:
所述第一节点不存在子节点,则在所述第一节点中创建指向任一内存空间的儿子指针,所述儿子指针用于指示所述内存空间作为所述第一节点的子节点;
在所述内存空间中存储所述目标字符。
3.根据权利要求1所述的方法,其特征在于,所述第一节点存在子节点,则创建链表,作为所述子节点的兄弟节点,包括:
所述第一节点存在子节点且所述子节点不存在兄弟节点,则创建链表作为第二节点;
在所述子节点中创建指向所述第二节点的兄弟指针,所述兄弟指针用于指示所述第二节点为所述子节点的兄弟节点。
4.根据权利要求1所述的方法,其特征在于,所述第一节点存在子节点,则创建链表,作为所述子节点的兄弟节点,包括:
所述第一节点存在子节点且所述子节点存在兄弟节点,则创建链表作为第二节点;
在所述子节点的最后一个兄弟节点中创建指向所述第二节点的兄弟指针,所述兄弟指针用于指示所述第二节点为所述最后一个兄弟节点的兄弟节点。
5.根据权利要求1所述的方法,其特征在于,所述目标字符串中的多个目标字符属于字符集合,所述字符集合中包括按顺序排列的多个字符,所述第一节点存在子节点,则创建链表,作为所述子节点的兄弟节点,包括:
所述第一节点存在子节点且所述子节点存在至少一个兄弟节点,则创建链表作为第二节点;
根据所述至少一个兄弟节点中存储的字符和所述目标字符在所述字符集合中的顺序,对所述至少一个兄弟节点和所述第二节点进行排序,并按照节点顺序创建兄弟指针。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述目标字符串中的最后一个字符所在的第三节点;
创建链表作为所述第三节点的叶节点;
在所述叶节点中存储所述目标字符串对应的业务数据。
7.根据权利要求1-6任一所述的方法,其特征在于,所述方法还包括:
遍历所述多个目标字符完成,则创建所述字典树中的多个节点的失败指针,所述节点的失败指针指向所述节点中存储的字符匹配失败时跳转到的节点。
8.根据权利要求7所述的方法,其特征在于,所述遍历所述多个目标字符完成,则创建所述字典树中的多个节点的失败指针之前,所述方法还包括:
对于当前遍历的目标字符,为存储所述目标字符的节点添加不可访问标记,所述不可访问标记用于表示节点处于不可访问状态;
所述遍历所述多个目标字符完成,则创建所述字典树中的多个节点的失败指针之后,所述方法还包括:将添加的多个不可访问标记删除。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收携带第一字符串的删除指令,所述第一字符串包括多个第一字符;
确定所述字典树中所述多个第一字符所在的多个节点;
按照所述多个节点从下向上的顺序,删除所述多个节点中满足删除条件的节点,所述删除条件为节点不存在子节点和叶节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010670485.0/1.html,转载请声明来源钻瓜专利网。