字符串操作一(串)
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。