#include #include #include using namespace std; void solve() { string s, t; cin >> s >> t; int n = s.size(); vector ss(2), tt(2); for (int i = 0; i < n; ++i) { ss[i % 2].push_back(s[i]); tt[i % 2].push_back(t[i]); } for (int i = 0; i < 2; ++i) { auto tmps = ss[i], tmpt = tt[i]; sort(tmps.begin(), tmps.end()); sort(tmpt.begin(), tmpt.end()); if (tmps != tmpt) { cout << "No\n"; return; } } for (int i = 0; i < 2; ++i) { vector cnt(26); for (auto c : ss[i]) ++cnt[c - 'a']; for (int j = 0; j < 26; ++j) { if (cnt[j] > 1) { cout << "Yes\n"; return; } } } auto calinv = [](const string &s) -> int { vector cnt(26); int ret = 0; for (auto c : s) { for (int j = c - 'a'; j < 26; ++j) ret += cnt[j]; ++cnt[c - 'a']; } return ret; }; if ((calinv(ss[0]) + calinv(tt[0])) % 2 != (calinv(ss[1]) + calinv(tt[1])) % 2) { cout << "No\n"; return; } cout << "Yes\n"; } int main() { int t; cin >> t; while (t--) solve(); }