解题思路书里已经讲得很详细了,这里就只放出代码 Solution:
#include <algorithm> #include <iostream> #include <utility> #include <cstring> #include <cstdlib> #include <cstdio> #include <sstream> #include <deque> #include <string> #include <vector> #include <cmath> #include <stack> #include <queue> #include <map> #include <set> using namespace std; #define mm(a,i) memset(a, i, sizeof(a)); #define LL long long #define Mod 1000000007 #define SC_C(s) scanf("%c", &s) #define SC(a) scanf("%d", &a) #define SCC(a,b) scanf("%d %d", &a, &b) #define SCCC(a,b,c) scanf("%d %d %d", &a, &b, &c) #define FXA(i,a,n) for(i=a; i<n; i++) #define FDA(i,a,n) for(i=a; i>n; i++) #define FXDA(i,a,n) for(i=a; i<=n; i++) #define FDDA(i,a,n) for(i=a; i>=n; i++) #define FXB(i,a,n) for(i=a; i<n; i--) #define FDB(i,a,n) for(i=a; i>n; i--) #define FXDB(i,a,n) for(i=a; i<=n; i--) #define FDDB(i,a,n) for(i=a; i>=n; i--) #define PF(n) printf("%d\n", n); #define PFF(n,m) printf("%d %d\n", n, m); #define PFFF(x,y,z) printf("%d %d %d\n", x, y, z); #define PF_Case(i) printf("Case %d:\n",i); #define PF_C(i) printf("%c:\n",i); #define PF_L(x) printf("%I64d\n",x); #define IN freopen("D:\\in.txt","r",stdin); #define ENT printf("\n"); #define MAX(a,b) a>b?a:b #define MIN(a,b) a<b?a:b int maxx = 999999999; int minn = -999999999; bool flag; int i,j,k,T,ans,sum,m,n,cnt; main() { #ifndef ONLINE_JUDGE IN #endif // ONLINE_JUDGE int a[26],b[26]; char aa[110], bb[110]; mm(aa,0)mm(bb,0) while(cin>>aa>>bb) { mm(a,0)mm(b,0); k=1; n = strlen(aa); FXA(i,0,n) { a[aa[i]-'A']++; b[bb[i]-'A']++; } sort(a,a+26); sort(b,b+26); FDDB(i,25,0) { if(!k) break; if(a[i] != b[i]) k=0; } if(k) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }