334.反转字符串
难度:简单
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
示例 1:
输入:s = ["h","e","l","l","o"]
输出:["o","l","l","e","h"]
示例 2:
输入:s = ["H","a","n","n","a","h"]
输出:["h","a","n","n","a","H"]
public class Test02 {
public static void main(String[] args) {
Test02 t = new Test02();
char[] c ={'a','b','e'};
t.reverseString(c);
System.out.println(c);
}
public void reverseString(char[] s) {
int left = 0; //定义左边值为0
int right = s.length-1; //定义右边的长度为字符的长度
char c; //定义一个字符初始化变量
for (int i = left; i<right; left++,right--,i++) { //初始值为0,条件判断,迭代因子
c=s[left]; //左边字符s[0]赋值个字符c,原本c为空,现在为s[0]
s[left]=s[right]; //右边字符s[s.length-1]赋值给s[left],原本s[left]为s[0],现在为s[s.length-1]
s[right]=c; //左边字符为s[0]赋值给s[right],原本s[right]为s[s.length-1],现在为s[0]
}
/* char c; //设置一个字符初始化,没有赋值
while (right > left){ //右侧值大于左侧值
c = s[left]; //字符为s[0]的时候赋值给字符c,字符c现在的值为s[0]
s[left] = s[right]; //字符长度为s[s.length-1]赋值给左侧字符s[0],字符s[left]现在的值为s[s.length-1]
s[right] = c; //将字符c赋值给字符s[0]的赋值给s[s.length-1],字符s[right]现在的值为s[0]
left++; //最小值的索引+1
right--; //最大值的索引-1
}*/
}
}