数组、字符串

mac2026-05-08  2

字符串转化

数组和字符串试最基本的数据结构,再很多编程语言中都有着非常相似的性质,而围绕着他们的算法和面试题也是最多的。

很多时候,在分析字符串相关面试题的过程中,我们往往要针对字符串当中的每一个字符进行分析和处理,甚至有时候我们得先把给定的字符串转换成字符数组之后再进行分析和处理

举例:翻转字符串“algorithm”。 解法:用两个指针,一个指向字符串的第一个字符 a,一个指向它的最后一个字符 m,然后互相交换。交换之后,两个指针向中央一步步地靠拢并相互交换字符,直到两个指针相遇。这是一种比较快速和直观的方法。

注意:由于无法直接修改字符串里的字符,所以必须先把字符串变换为数组,然后再运用这个算法。

数组的优缺点

数组的优点在于:

构建非常简单能在O(1)的时间里根据数组的下标(index)查询某个元素

而数组的缺点在于:

构建时必须分配一段连续的空间查询某个元素是否存在时需要遍历整个数组,耗费**O(n)**的时间删除和添加某个元素时,同样需要耗费O(n)的时间

所以,当考虑是否应当采用数组去辅助算法时,应考虑其优缺点,看看它的缺点是否会阻碍算法复杂度及空间复杂度

最新回复(0)