题解:CF2167B Your Name

· · 题解

题目传送门。

前置知识

map

map 是一种数据结构,可以这样使用:

map < 下表类型, 值的类型 > 变量名;

思路

显然如果 khba 名字的每个字母都在她女朋友的名字里,那么就可以了。

用 map 存储 khba 名字的每个字母出现的数量,再存储他女朋友名字的每个字母出现的数量,如果每个都匹配就输出 Yes ,否则输出 No

AC Code

#include <bits/stdc++.h>
#define int long long

using namespace std;

int q;
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin >> q;
    for (int k = 1; k <= q; k++) {
        bool flag = true;
        int len;
        string s, t;
        cin >> len>> s>> t;
        map < char, int > mp;
        for (int i = 0; i < s.size(); i++) mp[s[i]]--;
        for (int i = 0; i < t.size(); i++) mp[t[i]]++;
        for (int i = 0; i < s.size(); i++)
            if (mp[s[i]] != 0) {
                cout << "NO\n";
                flag = false;
                break;
            }
        if (flag == true) cout << "YES\n";
    }
    return 0;
}