编写反转字符串的程序,要求优化速度、优化空间
(1)第一次看到这个题目首先想到遍历这个字符串,把第一个和最后一个字符交换,第二个和倒数第二个交换,
依次循环即可,下面时代码
(2)用数组下标的方式访问数组,实际上用指针直接操作即可
显 然上面的两个解法中没有考虑时间和空间的优化,一个典型的优化策略就是两个字符交换的算法优化,我们可以完全不使用任何外部变量即完成两个字符(或者整 数)的交换,这也是一个很经典的面试题目。特别是一些嵌入式硬件相关编程中经常要考虑寄存器的使用,因此经常有不使用任何第三个寄存器即完成两个寄存器数 据的交换的题目。一般有两个解法,对应这里的解法三和解法四。
解法三 的实现代码为:

























解法四 的实现代码为:


























我们还可以通过递归的方法实现