YetnotherrokenKeoard
题意
给你一个字符串
如果出现字符
如果出现字符
题解
考虑从后面开始遍历字符串
代码
#include<iostream>
#include<cstdio>
#include<climits>
#include<queue>
#include<stack>
#include<algorithm>
#include<map>
#include<set>
#include<string>
#include<cstring>
#include<unordered_map>
#include<unordered_set>
#include<cmath>
#include<numeric>
#define int long long
using namespace std;
int n,m,k,t;
int nums[1000005];
bool vis[1000005];
int gcd(int a,int b){
if(b) while((a%=b)&&(b%=a));
return a+b;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>t;
while(t--){
string s;
cin>>s;
for(int i=0;i<s.size();i++) vis[i]=0;
int big=0,sma=0;
for(int i=s.size()-1;i>=0;i--){
if(s[i]=='B'){big++,vis[i]=1;continue;}
if(s[i]=='b'){sma++,vis[i]=1;continue;}
if(big&&s[i]>='A'&&s[i]<='Z'){
big--;
vis[i]=1;
continue;
}
if(sma&&s[i]>='a'&&s[i]<='z'){
sma--;
vis[i]=1;
continue;
}
}
for(int i=0;i<s.size();i++){
if(!vis[i]) cout<<s[i];
}
cout<<'\n';
}
return 0;
}