解説
まず、同じ文字を組み合わせてできた別の単語があったとする。これらは$A$と比較した結果が同じになるだろう。順番は気にしてないのだから。
つまり、$B$は自分の都合のいいように並び替えても問題がないといえる。
では、今回の場合どうすれば都合がよくなるか、それは昇順ソートである。
$A$と$B$を事前に昇順ソートしてしまえば後は$A$と$B$が一致するかという問題に帰着する。
C++での解答例
#include <bits/stdc++.h>
using namespace std;
int main(){
string a,b;cin>>a>>b;
sort(a.begin(),a.end());
sort(b.begin(),b.end());
cout<<(a==b?"YES\n":"NO\n");
}