-
题目描述:
-
读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。
-
输入:
-
题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当输入“E”时表示输入结束。
1<=length<=100。
-
输出:
-
对于每组输入,请输出一行,表示按照要求处理后的字符串。
具体可见样例。
-
样例输入:
-
ZZOOOJJJ ZZZZOOOOOJJJ ZOOOJJ E
-
样例输出:
-
ZOJZOJOJ ZOJZOJZOJZOO ZOJOJO
这道题不难,只要在扫描字符串的时候,记录下每个字母出现的次数。然后每输出一次ZOJ,相应的字母对应的个数就减1,直到个数为0停止该字母的输出。 我因为少输出一个换行符Wrong了两次。。
#include <iostream> using namespace std; int main(){ string str; while(cin>>str){ if(str == "E") break; int num_z = 0; int num_o = 0; int num_j = 0; for(int i=0;i<str.length();i++){ if(str[i] == 'Z') num_z ++; if(str[i] == 'O') num_o ++; if(str[i] == 'J') num_j ++; } while(num_z!=0 || num_o!=0 || num_j!=0){ if(num_z > 0){ cout<<"Z"; num_z --; } if(num_o > 0){ cout<<"O"; num_o --; } if(num_j > 0){ cout<<"J"; num_j --; } } cout<<endl; } return 0; }

本文介绍了一种处理特定字符串的方法,通过统计字符串中ZOJ字符的数量,并按照ZOJ的顺序输出这些字符,直至各字符用尽。文章附带了一个C++实现示例。
609

被折叠的 条评论
为什么被折叠?



