将字符串n位翻转

本文介绍了一种字符串位翻转的算法实现,通过三次翻转操作达到指定区间内的字符顺序颠倒的效果。该方法适用于字符串处理及算法学习。

描述:

有一字符串asdfghjh,将3位翻转得fghihasd,编写程序实现。

基本思路:

编写reverse函数,实现k到m位的翻转。

reverse(0,n-1,a);    //第一个位置到第n位置翻转;

reverse(n,len-1,a);  //第n+1个位置到最后位置翻转;

reverse(0,len-1,a);  //第一个位置到最后位置翻转;


源代码:

#include <stdio.h>
#include <string.h>
void reverse(int k,int m,char a[])
{
	int i,j;
	char t;
	for(i=k,j=m;j>i;i++,j--)
	{
		t=a[i];
		a[i]=a[j];
		a[j]=t;
	}
}
int main()
{
	char a[100];
	int n,len;
	printf("input string:");
	gets(a);
	len=strlen(a);
	printf("input the reverse of bits:");
	scanf("%d",&n);
	reverse(0,n-1,a);
	reverse(n,len-1,a);
	reverse(0,len-1,a);
	puts(a);
	printf("\n");
	return 0;
}


### Java字符串数组排序后翻转的操作方法 在Java中,可以使用`Arrays.sort()`方法对字符串数组进行排序,并通过`StringBuilder`类或手动循环实现数组的翻转。以下是具体的实现代码和解释: #### 排序并翻转字符串数组 以下代码展示了如何对字符串数组进行排序并翻转其顺序[^1]: ```java import java.util.Arrays; public class StringArraySortAndReverse { public static void main(String[] args) { // 声明并初始化一个字符串数组 String[] strings = {"banana", "apple", "orange", "grape"}; // 对字符串数组进行排序 Arrays.sort(strings); // 打印排序后的数组 System.out.println("Sorted Array: " + Arrays.toString(strings)); // 调用方法翻转数组 reverseArray(strings); // 打印翻转后的数组 System.out.println("Reversed Array: " + Arrays.toString(strings)); } // 翻转字符串数组的方法 public static void reverseArray(String[] array) { int n = array.length; for (int i = 0; i < n / 2; i++) { // 交换数组中的元素 String temp = array[i]; array[i] = array[n - 1 - i]; array[n - 1 - i] = temp; } } } ``` #### 代码解析 1. 使用`Arrays.sort()`方法对字符串数组按字典顺序进行排序[^1]。 2. 定义一个`reverseArray()`方法来翻转数组。该方法通过遍历数组的前半部分,将每个元素与对应的后半部分元素交换位置,从而实现数组的翻转[^1]。 #### 输出结果 运行上述代码后,输出如下: ``` Sorted Array: [apple, banana, grape, orange] Reversed Array: [orange, grape, banana, apple] ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值