给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 StringString....
(注意区分大小写)这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 String
的顺序打印,直到所有字符都被输出。例如 gnirtSSs
要调整成 StringS
输出,其中 s
是多余字符被忽略。
输入格式:
输入在一行中给出一个长度不超过 104 的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例:
sTRidlinSayBingStrropriiSHSiRiagIgtSSr
输出样例:
StringStringSrigSriSiSii
解题思路:
很简单,计数然后输出即可
#include <bits/stdc++.h>
using namespace std;
int main()
{
int count[6] = {};
string word = "String";
int zero = 0;
string line;
cin >> line;
for(auto i : line)
{
if(i == 'S') ++count[0];
if(i == 't') ++count[1];
if(i == 'r') ++count[2];
if(i == 'i') ++count[3];
if(i == 'n') ++count[4];
if(i == 'g') ++count[5];
}
while(zero != 6)
{
for(int i = 0;i < 6;++i)
{
if(count[i] > 0)
{
cout << word[i];
--count[i];
}
else
{
if(count[i] == 0)
{
++zero;
count[i] = -1;
}
}
}
}
}