问题 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();
}
}
评论