算法:(五)字符串
(一)字符串题目的特色算法
①普遍性数组
- 字符串能够看做字符类型的数组,与数组的排序、查找、调整有关
- 不少其余类型的题可看做字符串类型的题
②须要掌握的概念数据结构
- 回文
- 子串(连续)
- 子序列(不连续)
- 前缀树(Trie树)
- 后缀树和后缀数组
- 匹配
- 字典序
③须要掌握的操做spa
- 与数组有关的操做:增删改查
- 字符的替换
- 字符串的旋转
(二)字符串题目的常见类型排序
①规则判断字符串
- 判断字符串是否符合整数规则
- 判断字符串是否符合浮点数规则
- 判断字符串是否符合回文字符串规则
②数字运算搜索
- int和long类型表达整数范围有限因此常常用字符串实现大整数,与大整数相关的加减乘除操做,须要模拟笔算的过程
③与数组操做有关的类型数据
- 数组有关的调整、排序等操做
- 快速排序的划分过程要掌握和改写
④字符计数动态规划
- 哈希表
- 固定长度的数组(C/C++256长度,JAVA65536长度)
- 滑动窗口问题、寻找无重复字符子串问题、计算变位词问题
⑤动态规划类型哈希表
- 最长公共子串
- 最长公共子序列
- 最长回文子串
- 最长回文子序列
⑥搜索类型
⑦高级算法与数据结构解决的问题
- Manacher算法解决最长回文子串问题
- KMP算法解决字符串匹配问题
- 前缀树结构
- 后缀树和后缀数组
欢迎关注本站公众号,获取更多信息