解答
思路:
1.因为空间复杂度为o(1),不能采用new一个字符串空间,反向赋值;
2.可以想到,反转就是第一个字符跟倒数第一个字符对换,第二个跟倒数第二个… ;
3.设置两个指针head, rear ,分别放在第一位和倒数最后一位,然后向中间移动,
即可完成反转;
4.<条件反射>,要交换指针,一定设置记录结点p, 上来直接写。
核心代码
Char[] reverse( char[] str)
{
if(str.length == 0) //错误情况
return str;
int head = 0;
int rear = str.length -1;
char p; //记录结点
while( rear > head) {
p = str[rear]
str[rear]= str[head];
str[head] = p;
--rear; ++head;
}
return str;
}
这么久了终于弄明白这个问题