当前位置: 代码迷 >> 综合 >> ZOJ 3783
  详细解决方案

ZOJ 3783

热度:98   发布时间:2023-12-18 22:54:04.0

Problem Description

读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。

Input

题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当输入“E”时表示输入结束。
1<=length<=100

Output

对于每组输入,请输出一行,表示按照要求处理后的字符串。
具体可见样例。

Sample Input

ZZOOOJJJ

ZZZZOOOOOJJJ

ZOOOJJ

E

Sample Output

ZOJZOJOJ

ZOJZOJZOJZOO

ZOJOJO

#include <iostream>
#include <string>
#include <algorithm>
int main(int argc, const char *argv[])
{
std::string str;
while(std::cin >> str && str != "E")
{
int nZ = std::count(str.begin(), str.end(), 'Z');
int nO = std::count(str.begin(), str.end(), 'O');
int nJ = std::count(str.begin(), str.end(), 'J');
while(nZ || nO || nJ)
{
if(nZ)
{
std::cout << "Z";
-- nZ;
}
if(nO)
{
std::cout << "O";
-- nO;
}
if(nJ)
{
std::cout << "J";
-- nJ;
}
}
std::cout << std::endl;
}
return 0;
}
  相关解决方案