小凯的排序

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爬虫入门教程: 半次元COS图爬取

    半次元COS图爬取-写在前面 今天在浏览网站的时候,忽然一个莫名的链接指引着我跳转到了半次元网站 https://bcy.net/ 打开之后,发现也没有什么有意思的内容,职业的敏感让我瞬间联想到了 c ...

  2. 负载均衡之nginx+consul(自动更新路由)

    前几篇先是记载了如何通过nginx配置服务负载均衡,后面记载了如何通过 ocelot 配置 服务负载均衡,分别介绍了用webapi注册服务以及配置文件注册服务,通过ocelot webapi + co ...

  3. github & Front-end JavaScript frameworks

    github & Front-end JavaScript frameworks https://github.com/collections/front-end-javascript-fra ...

  4. 学习——Git及VersionControl

    一.Git基本介绍 1.Git是什么? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.用以有效.高速的处理从很小到非常大的项目版本管理.Git 是 Linus To ...

  5. AE 创建

    using System; using System.Drawing; using System.Runtime.InteropServices; using ESRI.ArcGIS.ADF; usi ...

  6. 从零单排入门机器学习:Octave/matlab的经常使用知识之矩阵和向量

    Octave/matlab的经常使用知识之矩阵和向量 之前一段时间在coursera看了Andrew ng的机器学习的课程,感觉还不错.算是入门了.这次打算以该课程的作业为主线,对机器学习基本知识做一 ...

  7. HDU 4499 Cannon (暴力搜索)

    题意:在n*m的方格里有t个棋子,问最多能放多少个炮且每一个炮不能互相攻击(炮吃炮) 炮吃炮:在同一行或同一列且中间有一颗棋子. #include <stdio.h> #include & ...

  8. C++成员对齐方式探讨

    本文參考了<高质量程序设计指南--C++/C语言>一书 有不妥之处恳请指正 一.自然对齐 某些基于RISC(精简指令集)的CPU比方SPARC.PowerPC等.採用高字节和高字在低地址存 ...

  9. ScrollView中嵌套ScrollView或ListView而且内部ScrollView或ListView也可滑动

    1.ScrollView中嵌套ScrollView而且内部ScrollView也可滑动 (1)ScrollView继承类 public class InnerScrollView extends Sc ...

  10. LeetCode 551. Student Attendance Record I (学生出勤纪录 I)

    You are given a string representing an attendance record for a student. The record only contains the ...