在面试中,我们最常见到的数据结构莫过于这么几类:
- 数组和字符串
- 链表
- 栈
- 队列
- 双端队列
- 树
本篇文章将从最基础的数据结构开始,让我们一起来领略数组和字符串的奥妙吧!
一、数组和字符串
数组和字符串是最基本的数据结构,在很多编程语言中都有着十分相似的性质,这部分的算法面试题也是最多的。
很多时候,在分析字符串相关面试题的过程中,要针对字符串当中的每一个字符进行分析和处理,甚至有时候需要先把给定的字符串转换成字符数组之后再进行分析和处理,举个最简单的例子:翻转一个字符串。
一种比较快速和直观的方法是用两个指针,一个指向字符串的第一个字符 a,一个指向它的最后一个字符 m,然后互相交换。交换之后,两个指针向中央一步步地靠拢并相互交换字符,直到两个指针相遇。
由于无法直接修改字符串里的字符,所以必须先把字符串变换为数组,然后再运用这个算法。
动画演示