ACM_小凯的排序(字符串)
Posted acgoto
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM_小凯的排序(字符串)相关的知识,希望对你有一定的参考价值。
小凯的排序
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
调皮的小凯喜欢排序,拿到什么东西都要排一下序。现在他觉得单一的递增递减排序已经不能满足他了,所以他要制定一个新的排序规则,规则如下:给定一个长度不超过100的字符串,里面包括大写字母、小写字母、数字与其他英文标点符号(包括空格,但没有回车),如果是大写字母,就按照从Z到A降序来排,如果是小写字母或数字,就按照从a到z或从0到9来排,其他字符则保留排序前与排序后各个位置对应的字符类型不变。如排序前是“M105cpICcaZ”,则排序后是“Z015acMIcpC”。
Input:
输入包括多组数据,每组数据第一行为一个整数n(1<=n<=100),代表字符串的长度,接下来是一行字符串。
Output:
对于每组数据,输出排序后的结果。
Sample Input:
11 M105cpICcaZ 18 #InClude <STDio.H>
Sample Output:
Z015acMIcpC #TdSeiln <IHDou.C>
解题思路:简单字符串处理,将大写字母、小写字母、数字各自排好序再依次填入对应符合类型的位置,最后再输出一整串结果字符串,水过!
AC代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=105; 4 char ir[maxn],iu[maxn],id[maxn],str[maxn],obj[maxn]; 5 int kr,ku,kd,n; 6 int main(){ 7 while(cin>>n){ 8 getchar();gets(str);kr=ku=kd=0;memset(obj,‘