java实现函数把字符数组的元素逆序 如“abc“, 逆序成“cba“.
时间: 2024-01-28 08:04:48 浏览: 23
可以使用双指针的方法,从字符数组的两端开始交换元素,直到两个指针相遇。具体实现如下:
```java
public static void reverse(char[] arr) {
int left = 0;
int right = arr.length - 1;
while (left < right) {
// 交换左右指针对应的元素
char temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
// 左指针向右移动
left++;
// 右指针向左移动
right--;
}
}
```
使用时,可以这样调用:
```java
char[] arr = {'a', 'b', 'c'};
reverse(arr);
System.out.println(Arrays.toString(arr)); // 输出 [c, b, a]
```
这样就可以将字符数组逆序了。
相关问题
函数把字符数组的元素逆序 如“abc“, 逆序成“cba“.用Java实现
可以使用双指针的方式来实现字符数组元素的逆序。具体实现如下:
```java
public static void reverse(char[] arr) {
int left = 0;
int right = arr.length - 1;
while (left < right) {
char temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
```
使用示例:
```java
public static void main(String[] args) {
char[] arr = {'a', 'b', 'c'};
reverse(arr);
System.out.println(Arrays.toString(arr)); // 输出 [c, b, a]
}
```
注意:这里实现的是原地逆序,即直接修改原数组的元素,而不是创建一个新的数组来存储逆序后的元素。如果需要创建新数组,可以参考以下实现:
```java
public static char[] reverse(char[] arr) {
char[] result = new char[arr.length];
int j = 0;
for (int i = arr.length - 1; i >= 0; i--) {
result[j++] = arr[i];
}
return result;
}
```
本题要求使用递归函数实现字符串的逆序输出。如输入abc,输出cba
可以使用递归函数来实现字符串的逆序输出。具体实现方法如下:
1. 定义一个递归函数,输入参数为一个字符串。
2. 如果字符串为空或者长度为1,则直接返回该字符串。
3. 否则,将字符串的第一个字符和剩余部分分别取出来,然后将剩余部分作为参数调用递归函数,得到逆序输出的结果。
4. 最后将第一个字符和逆序输出的结果拼接起来,返回即可。
下面是具体的代码实现:
```
def reverse_string(s):
if len(s) <= 1:
return s
else:
first_char = s[]
rest_chars = s[1:]
reversed_rest = reverse_string(rest_chars)
return reversed_rest + first_char
# 测试
print(reverse_string("abc")) # 输出cba
```
在上面的代码中,我们定义了一个名为`reverse_string`的递归函数,它的输入参数为一个字符串`s`。如果`s`的长度小于等于1,则直接返回`s`;否则,我们将`s`的第一个字符和剩余部分分别取出来,然后将剩余部分作为参数调用递归函数`reverse_string`,得到逆序输出的结果`reversed_rest`。最后,我们将第一个字符和逆序输出的结果拼接起来,返回即可。