题目大概意思:用最小的改变次数,把字符串,改成有数字,有小写,有大写的样子
#include "bits/stdc++.h"
using namespace std;
int main(){
int n;
string s;
cin>>n;
for(int i=1;i<=n;i++){
int a=0,b=0,c=0;
cin>>s;
for(int j=0;j<s.size();j++){
if(s[j]>='0'&&s[j]<='9')a++;
if(s[j]>='a'&&s[j]<='z')b++;
if(s[j]>='A'&&s[j]<='Z')c++;
}
if(a==0){
if(b>1){
for(int j=0;j<s.size();j++){
if(s[j]>='a'&&s[j]<='z'){
s[j]='1';
break;
}
}
b--;
}else if(c>1){
for(int j=0;j<s.size();j++){
if(s[j]>='A'&&s[j]<='Z'){
s[j]='1';
break;
}
}
c--;
}
}
if(b==0){
if(a>1){
for(int j=0;j<s.size();j++){
if(s[j]>='0'&&s[j]<='9'){
s[j]='a';
break;
}
}
a--;
}else if(c>1){
for(int j=0;j<s.size();j++){
if(s[j]>='A'&&s[j]<='Z'){
s[j]='a';
break;
}
}
c--;
}
}
if(c==0){
if(a>1){
for(int j=0;j<s.size();j++){
if(s[j]>='0'&&s[j]<='9'){
s[j]='A';
break;
}
}
a--;
}else if(b>1){
for(int j=0;j<s.size();j++){
if(s[j]>='a'&&s[j]<='z'){
s[j]='A';
break;
}
}
b--;
}
}
cout<<s<<endl;
}
return 0;
}