字符串操作一(串)

字符串操作一(串)

时间: 1ms        内存:64M

描述:

输入一长度为n的字符串,若其n为偶数,则将字符串从中间反转,若为奇数,则将前后各(n-1)/2个字符反转,中间字符不动。

输入:

输出:

示例输入:

asdfghjkl
qwerty

示例输出:

fdsaglkjh
ewqytr

提示:

参考答案(内存最优[752]):

#include<stdio.h>
#include<string.h>
int main()
{
	char str[100];
	int n,i;
	while(scanf("%s",str)!=EOF)
	{
		n=strlen(str);
		if(n%2==0)
		{
			for(i=n/2;i>0;i--)
				putchar(str[i-1]);
			for(i=n;i>n/2;i--)
				putchar(str[i-1]);
		}
		else
		{
			for(i=n/2-1;i>=0;i--)
				putchar(str[i]);
			putchar(str[n/2]);
			for(i=n;i>n/2+1;i--)
				putchar(str[i-1]);
		}
		printf("\n");
	}
	return 0;
}

参考答案(时间最优[0]):

#include<stdio.h>
#include<string.h>
int main()
{
	char str[100];
	int n,i;
	while(scanf("%s",str)!=EOF)
	{
		n=strlen(str);
		if(n%2==0)
		{
			for(i=n/2;i>0;i--)
				putchar(str[i-1]);
			for(i=n;i>n/2;i--)
				putchar(str[i-1]);
		}
		else
		{
			for(i=n/2-1;i>=0;i--)
				putchar(str[i]);
			putchar(str[n/2]);
			for(i=n;i>n/2+1;i--)
				putchar(str[i-1]);
		}
		printf("\n");
	}
	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注