1108 String复读机
给定一个长度不超过 10的4次方的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 StringString… (注意区分大小写)这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 String 的顺序打印,直到所有字符都被输出。例如 gnirtSSs 要调整成 StringS 输出,其中 s 是多余字符被忽略。
输入格式:
输入在一行中给出一个长度不超过 10的4次方 的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例:
sTRidlinSayBingStrropriiSHSiRiagIgtSSr
输出样例:
StringStringSrigSriSiSii
代码长度限制 16 KB
时间限制 200 ms
内存限制 64 MB
/*
1108 String复读机
https://pintia.cn/problem-sets/994805260223102976/exam/problems/1478634527046828032
*/
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<char> S,t,r,i,n,g;
string str;
cin>>str;
for(int k=0;k<str.length();k++)
{
if(str[k]=='S')
S.push_back(str[k]);
if(str[k]=='t')
t.push_back(str[k]);
if(str[k]=='r')
r.push_back(str[k]);
if(str[k]=='i')
i.push_back(str[k]);
if(str[k]=='n')
n.push_back(str[k]);
if(str[k]=='g')
g.push_back(str[k]);
}
while(S.size()>0||t.size()>0||r.size()>0||i.size()>0||n.size()>0||g.size()>0)
{
if(S.size()>0)
{
cout<<S[0];
S.pop_back();
}
if(t.size()>0)
{
cout<<t[0];
t.pop_back();
}
if(r.size()>0)
{
cout<<r[0];
r.pop_back();
}
if(i.size()>0)
{
cout<<i[0];
i.pop_back();
}
if(n.size()>0)
{
cout<<n[0];
n.pop_back();
}
if(g.size()>0)
{
cout<<g[0];
g.pop_back();
}
}
}