问题:
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
思路:
使用双指针,指针1指向数组的第一个位置,指针2指向数组的最后一个位置,设置一个temp用来做缓冲值,交换指针1和指针2的值,指针1自增,指针2自减,结束条件是指针1>指针2
算法:
package com.kang.字符串翻转;
public class chanback {
public static void main(String[] args) {
char[] s={'a','b','c'};
chanback ch=new chanback();
char[] sss=ch.back(s);
for(char c:sss){
System.out.println(c);
}
}
char[] back(char[] s){
char c;
int i=0;
int l=s.length-1;
while(i<l){
c=s[i];
s[i]=s[l];
s[l]=c;
l--;
i++;
}
return s;
}
}