FJNU09排序

FJNU09排序

Time Limit: 1 Seconds     Memory Limit: 32768 K

Total Submit:443     Accepted:79


Description

给定一个长度不大于1000的字符串,你将对该字符串进行排序,使得所有的'F'后面依次紧跟着所有的'J','N','U','0','9',然后其余的字符按原来的先后顺序紧跟其后.

Input

每组给定一个如上所述的一个字符串,字符串里不包含空格。
读到文件结束。

Output

对于每组测试数据,输出排序后的字符串。

Sample Input

 

c0N9Fo9JmpNeNtUNFi00oJJn
000bJJUUe99g0iNNNFFFnUUN!

 

Sample Output

 

FFJJJNNNNU00099competion
FFFJJNNNNUUUU000099begin!

 

Hint

while(scanf("%s", s) != EOF) {
...
}


Source

PhoenixWright@fjnu

 

code:

 

#include <stdio.h>
#include <conio.h>
#include <string.h>

int quan[6]={0};

//ÒÆ¶¯×Ö·û´®
void MoveStr(int start,int end, char* str)
{
char mid = str[end];

for (int i=end; i>start; i--)
{
   str[i] = str[i-1];
}

str[i] = mid;
}

//ѰÕÒ¿ªÊ¼Òƶ¯µÄλÖÃ
int StrPostion(int index)
{
int size = 0;
for (int i=0;i<=index;i++)
{
   size += quan[i];
}
return size;
}

// ÅÅÐò
void Sort(char* str)
{
int start = 0;
int lenth = strlen(str);
for (int i=1; i<lenth; i++)
{
   switch(str[i])
   {
   case 'F': start = StrPostion(0); MoveStr(start,i,str); quan[0]++; break;
   case 'J': start = StrPostion(1); MoveStr(start,i,str); quan[1]++; break;
   case 'N': start = StrPostion(2); MoveStr(start,i,str); quan[2]++; break;
   case 'U': start = StrPostion(3); MoveStr(start,i,str); quan[3]++; break;
   case '0': start = StrPostion(4); MoveStr(start,i,str); quan[4]++; break;
   case '9': start = StrPostion(5); MoveStr(start,i,str); quan[5]++; break;
   default:break;
   }
}
}

int main()
{
char str[1000];

while (scanf("%s", str) != EOF)
{
   printf("before sort : %s/n",str);
   Sort(str);
   printf("after sort : %s/n", str);
}

getch();
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值