小凯的排序

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代码:
 #include<bits/stdc++.h>
using namespace std;
const int maxn=;
char ir[maxn],iu[maxn],id[maxn],str[maxn],obj[maxn];
int kr,ku,kd,n;
int main(){
while(cin>>n){
getchar();gets(str);kr=ku=kd=;memset(obj,'\0',sizeof(obj));
for(int i=;str[i]!='\0';++i){
if(islower(str[i]))ir[kr++]=str[i];//ir数组存放小写字母
if(isupper(str[i]))iu[ku++]=str[i];//iu数组存放大写字母
if(isdigit(str[i]))id[kd++]=str[i];//id数组存放数字
}
sort(ir,ir+kr);sort(iu,iu+ku);sort(id,id+kd);kr=kd=;
for(int i=;str[i]!='\0';++i){
if(islower(str[i]))obj[i]=ir[kr++];
else if(isupper(str[i]))obj[i]=iu[--ku];
else if(isdigit(str[i]))obj[i]=id[kd++];
else obj[i]=str[i];
}
cout<<obj<<endl;
}
return ;
}

ACM_小凯的排序(字符串)的更多相关文章

  1. NOIP2017 小凯的疑惑

    题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的 ...

  2. 【转】借助System.Linq.Dynamic, IQueryable根据排序字符串排序

    在使用Entity Framework时,若有多个排序,需要OrderBy (OrderByDescending)再ThenBy (ThenByDescending) 假设需要根据Name升序排序,再 ...

  3. 借助System.Linq.Dynamic, IQueryable根据排序字符串排序

    在使用Entity Framework时,若有多个排序,需要OrderBy (OrderByDescending)再ThenBy (ThenByDescending) 假设需要根据Name升序排序,再 ...

  4. 【比赛】NOIP2017 小凯的疑惑

    找规律:ans=a*b-a-b 证明:(可见 体系知识) gcd(A, B) = 1 → lcm(A, B) = AB 剩余类,把所有整数划分成m个等价类,每个等价类由相互同余的整数组成 任何数分成m ...

  5. 洛谷U32670 小凯的数字(比赛)

    题目网址 https://www.luogu.org/problemnew/show/U32670 题目背景 NOIP2018 原创模拟题T1 NOIP DAY1 T1 or DAY 2 T1 难度 ...

  6. 【NOIP2017 D1 T1 小凯的疑惑】

    题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的 ...

  7. Luogu [P3951] 小凯的疑惑

    题目详见:[P3951]小凯的疑惑 首先说明:此题为一道提高组的题.但其实代码并没有提高组的水平.主要考的是我们的推断能力,以及看到题后的分析能力. 分析如下: 证明当k>ab-a-b时,小凯可 ...

  8. NOIP 2017 小凯的疑惑

    # NOIP 2017 小凯的疑惑 思路 a,b 互质 求最大不能表示出来的数k 则k与 a,b 互质 这里有一个结论:(网上有证明)不过我是打表找的规律 若 x,y(设x<y) 互质 则 : ...

  9. luogu 3951 小凯的疑惑

    noip2017 D1T1 小凯的疑惑 某zz选手没有看出这道结论题,同时写出了exgcd却不会用,只能打一个哈希表骗了30分 题目大意: 两个互质的正整数a和b,求一个最小的正整数使这个数无法表示为 ...

随机推荐

  1. python list排序(正倒)以及获取重复数据

    mylist = [2,2,2,2,5,5,7,2,2,3,3,3,3] #<class 'list'>: [2, 2, 2, 2, 5, 5, 7, 2, 2, 3, 3, 3, 3] ...

  2. 安装charles

    简介: Charles主要的功能包括: 支持SSL代理.可以截取分析SSL的请求. 支持流量控制.可以模拟慢速网络以及等待时间(latency)较长的请求. 支持AJAX调试.可以自动将json或xm ...

  3. python基础面试题30问(附带答案)

    1.     闭包 定义:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个参数a, 内层函数依旧传入一个参数b, 内层函数使用a和b, 最后 ...

  4. Ubuntu notes

    ubuntu notes Table of Contents 1. backup data 2. Basics Ubuntu 3. Install, uninstall packages 4. Bas ...

  5. Codeforces 989C - A Mist of Florescence

    传送门:http://codeforces.com/contest/989/problem/C 这是一个构造问题. 构造一张网格,网格中的字符为’A’.’B’.’C’.’D’,并且其连通块的个数分别为 ...

  6. 百练2755:神奇的口袋(简单dp)

    描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an.John可以从这些物品中选择一些 ...

  7. kendo grid Hierarchy

    Hierarchy grid中不能使用下面的这段代码,会造成传值传不过来,把下面的代码注释,不用models,直接用form表单传值就行,暂时没搞明白为什么 //parameterMap: funct ...

  8. Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.embedded.FilterRegistrationBean

    Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.embedded.FilterRegistr ...

  9. Fedora下克隆Octopress博客

    我在自己的github上搭建了一个Octopress博客(http://songlee24.github.io/),用于不定期的写一些学习笔记和心得体会.但是有时候由于换了电脑或者重装了linux系统 ...

  10. jQuery的立即调用表达式

    立即调用表达式 任何库与框架设计的第一要要点就是解决命名空间与变量污染的问题.jquery就是用javascript函数作用域的特性,采用立即调用表达式包裹了自身的方法来解决这个问题的. jQuery ...