题目:
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
思路:
循环交换两端字符即可,注意可以使用异或运算交换增加运算效率,同时也可以使用递归实现。
代码:
循环:
1 | public void reverseString(char[] s) { |
复杂度分析及总结:
循环:
时间复杂度:
O(n)。
空间复杂度:
O(1)。