字符串在当今的编程中是无处不在的,脚本,web开发,生物信息学中都有广泛的应用。我们需要知道字符串是如何在内存中表示的,并理解字符串的基本操作,像比较,拷贝,链接,分解,匹配等等。
这里我们只讨论可以用基础的方法解决的字符串问题,高级的字符串处理算法经常用到哈希表和动态规划。
字符串的基本方法有append("Gauss"), push_back('c'), pop_back(), insert(s.begin() + shift, "Gauss"), substr(pos, len), compare("Gauss")。
与数组类似,字符串问题常常会有O(n)的空间复杂度的简单粗暴的解法,但是更精妙的解法就是运用字符串本身减小空间复杂度到O(1)。
从前面更新一个可变字符串是很慢的,所以要看是否可以从后面写入。
请记住字符串和数组的组织方式是类似的。对它从后面进行操作性能会更好,例如push_back('c')和pop_back(),但是在中间的操作性能会很差,例如insert(A.begin() + middle, "Gauss")。
比较操作符<, <=, >, >= 和 == 可以用在字符串上,==是逻辑相等,而不是指针相等。
字符串相关问题:
1. 字符串与整数之间的互相转换:
实现字符串/整数的相互转换的方法。
提示:建立结果时,每次一个数字位。
2. 基转换: