马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <bits/stdc++.h>
using namespace std;
struct Node
{
char c;
int pos;
bool operator <(const Node &o)const
{
return pos<o.pos;
} //位置从大到小
};
vector<Node> up,low,ans;
void solve()
{
string s,a;
cin>>s;
up.clear();
low.clear();
ans.clear();
for(int i=0;i<s.size();i++)
{
if(islower(s[i]))
{
if(s[i]=='b')
{
if(!low.empty())low.pop_back();
}
else
{
low.push_back(Node{s[i],i});
}
}
else
{
if(s[i]=='B')
{
if(!up.empty())up.pop_back();
}
else
{
up.push_back(Node{s[i],i});
}
}
}
for(int i=0;i<up.size();i++)
{
ans.push_back(up[i]);
}
for(int i=0;i<low.size();i++)
{
ans.push_back(low[i]);
}
sort(ans.begin(),ans.end());
for(int i=0;i<ans.size();i++)
{
cout<<ans[i].c;
}
cout<<endl;
}
int main()
{
int t;
cin>>t;
while(t--)
{
solve();
}
}
|