本文主要是介绍【字符串】常见算法题型及方法总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
什么是字符串?
字符串是若干字符组成的有限序列,可以理解为一个字符数组。在C++中提供了一个string类,那我们可能会想vector<char>和string有什么区别呢。在含义和基本操作方面基本是没有区别的,但是string提供了更多相关接口,比如string重载了+,而vector没有。所以我们一般会通过定义一个string类来处理字符串。
常见题型:
1. 反转字符串
2. 反转字符串Ⅱ
3. 替换数字
4.翻转字符串里的单词
5.右旋字符串
6.重复的子字符串
常见方法:
1. 当需要按照固定规律一段一段处理字符串时,可以在for循环的表达式上做改变,即不一定非要使用i++
2. 整体翻转再局部翻转的思想
3. 双指针法
4. KMP算法:主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。KMP可以用来解决匹配问题和重复字串问题。其中关键点是前缀和后缀。前缀是指不包含最后一个字符的所有以第一个字符开头的连续字串,后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串。
这篇关于【字符串】常见算法题型及方法总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!