资讯专栏INFORMATION COLUMN

字符串匹配类问题的解题技巧

meteor199 / 1952人阅读

摘要:可以先确定是单模式匹配问题还是多模式匹配问题,命中条件是否有多个。关于解题思路,如果是单模式匹配问题,可以考虑使用或者算法,如果是多模匹配,可以考虑使用树来解决。在实现匹配算法时,可以考虑用前缀或者后缀匹配的方式来进行。

首先要认真审题,避免答偏。
可以先确定是单模式匹配问题还是多模式匹配问题,命中条件是否有多个。
然后确定对算法时间复杂度或者内存占用是否有额外要求。
最后要明确期望的返回值是什么,比如存在有多个命中结果时,是返回第一个命中的,还是全部返回。

关于解题思路,如果是单模式匹配问题,可以考虑使用BM或者KMP算法,
如果是多模匹配,可以考虑使用tire树来解决。
在实现匹配算法时,可以考虑用前缀或者后缀匹配的方式来进行。
最后可以考虑是否能够通过栈、二叉树或者多叉树等数据结构来辅助解决。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74690.html

相关文章

  • 我理解数据结构(二)—— 栈(Stack)

    摘要:以数组的最后一个元素当成栈顶元素。解题思路首先,我们可以把左括号直接压入栈,不论是小括号中括号还是大括号。拿出栈顶元素,如果与之右括号不匹配,则返回。如果字符串比较完成,没有返回,则判断栈是否为空。 我理解的数据结构(二)—— 栈(Stack) 一、栈基础 栈是一种线性结构 相比较数组,栈对应的操作是数组的子集 只能从一端添加元素,也只能从同一端取出元素,这一端称为栈顶 栈是一种后...

    lcodecorex 评论0 收藏0
  • 我理解数据结构(二)—— 栈(Stack)

    摘要:以数组的最后一个元素当成栈顶元素。解题思路首先,我们可以把左括号直接压入栈,不论是小括号中括号还是大括号。拿出栈顶元素,如果与之右括号不匹配,则返回。如果字符串比较完成,没有返回,则判断栈是否为空。 我理解的数据结构(二)—— 栈(Stack) 一、栈基础 栈是一种线性结构 相比较数组,栈对应的操作是数组的子集 只能从一端添加元素,也只能从同一端取出元素,这一端称为栈顶 栈是一种后...

    Charlie_Jade 评论0 收藏0
  • 程序员算法趣题Q43: 让玻璃杯水量减半

    摘要:但是由于不能使用作为,所以将表示状态的列表转换为后再用作的。上一篇将牌洗为逆序下一篇糖果恶作剧本系列总目录参见程序员的算法趣题详细分析和全解 目录 1. 问题描述 2. 解题分析 2.1 节点状态表示 ​​​​​​​2.2 邻节点搜索 ​​​​​​​2.3 路径历史记忆以及判断邻节点是否在...

    chenjiang3 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<