算法
(排序) $O(1)$
可以开两个数组 $s$ 和 $t$,数组 $s$ 用来维护 $S_i$,数组 $t$ 用来维护 "H", "HR", "2B", "3B"
然后将这两个数组进行排序,此时若两者相等则说明满足要求。
C++ 代码
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
using std::cin;
using std::cout;
using std::vector;
using std::string;
int main() {
vector<string> s(4);
rep(i, 4) cin >> s[i];
vector<string> t = {"H", "HR", "2B", "3B"};
sort(s.begin(), s.end());
sort(t.begin(), t.end());
if (s == t) cout << "Yes\n";
else cout << "No\n";
return 0;
}