題目連結:e524: 106 彰雲嘉區複賽 – Q4 變位字判斷
用map很方便(如果是C++11更方便)
#include<iostream>
#include<algorithm>
#include<set>
#include<map>
#include<string>
#include<cstdlib>
using namespace std;
int main(){
ios::sync_with_stdio(0);cin.tie(0);
string a,b;
int n;
cin>>n;
getline(cin,a);
while(n--){
getline(cin,a);
getline(cin,b);
map<char,int> ma,mb;
for(int i=0;i<a.size();i++){
char c=a[i];
if(islower(c)){
ma[c]++;
}else if(isupper(c)){
ma[tolower(c)]++;
}
}
for(int i=0;i<b.size();i++){
char c=b[i];
if(islower(c)){
mb[c]++;
}else if(isupper(c)){
mb[tolower(c)]++;
}
}
bool isv=true;
map<char,int>::iterator ta=ma.begin(),tb=mb.begin();
for(ta=ma.begin();ta!=ma.end() && tb!=mb.end();ta++){
pair<char,int> pa=(*ta),pb=(*tb);
if(pa!=pb){
isv=false;
}
tb++;
}
if(ma.size()!=mb.size()) isv=false;
cout<<isv<<"\n";
}
return 0;
}