问题 E: 输出CJLU

C语言题库

共 1188字,需浏览 3分钟

 ·

2023-03-07 23:20

问题 E: 输出CJLU


内存限制:128 MB时间限制:1 S标准输入输出题目类型:传统



题目描述

2018年恰逢母校40周年校庆,请你帮助老师和同学们完成以下任务。

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按CJLUCJLU....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按CJLU的顺序打印,直到所有字符都被输出。


输入格式

本题有多组测试样例,输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。


输出格式

在一行中按题目要求输出排序后的字符串。题目保证输出非空。


输入样例 复制

pcTclnGloRgLrtLhgljkLhGFauPewSKgt


输出样例 复制

CJLUCLLLLL


分类标签

2018年中国计量大学ACM基地招新试题



代码:

#include <bits/stdc++.h>
#define N 10001
using namespace std;
int main()
{
string s;
int i, c = 0, j = 0, l = 0, u = 0;
cin >> s;
transform(s.begin(), s.end(), s.begin(), ::toupper);
for(i = 0;i < s.length();i++)
{
if(s[i] == 'C')
c++;
else if(s[i] == 'J')
j++;
else if(s[i] == 'L')
l++;
else if(s[i] == 'U')
u++;
}
i = 1;
queue<char> q;
while(i <= c || i <= j || i <= l || i <= u)
{
if(i <= c)
q.push('C');
if(i <= j)
q.push('J');
if(i <= l)
q.push('L');
if(i <= u)
q.push('U');
i++;
}
while(!q.empty())
{
cout << q.front();
q.pop();
}
}


浏览 11
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报