1039. 到底买不买(20)

来源:互联网 发布:公司域名是什么样的 编辑:程序博客网 时间:2024/06/05 18:11

https://www.patest.cn/contests/pat-b-practise/1039

//用两个map,记录一下,并且在计算和判断的时候需要改变map的个数

#include <bits/stdc++.h>using namespace std;int main(){    string s1, s2;    cin >> s1;    cin >> s2;    map<char, int> mp;    map<char, int> tmp;    mp.clear();    //最好进行初始化    for (int i = 0; i < s1.length(); i++) { mp[s1[i]] = 0; tmp[s1[i]] = 0; }    for (int i = 0; i < s2.length(); i++) { mp[s2[i]] = 0; tmp[s1[i]] = 0; }    int flag = true;    int cnttrue = 0, cntfalse = 0;    for (int i = 0; i < s1.length(); i++) {        mp[s1[i]] += 1;        tmp[s1[i]] += 1;    }    for (int i = 0; i < s1.length(); i++) {        cnttrue += tmp[s1[i]];        //已经记录过的字符将不再记入        tmp[s1[i]] = 0;    }    for (int i = 0; i < s2.length(); i++) {        if (mp[s2[i]] == 0) { cntfalse++; flag = false; }        else { cnttrue--; mp[s2[i]]--; } //相应的个数--,来表示此时已用去的字符个数    }    if (flag) cout << "Yes " << cnttrue << endl;    else cout << "No " << cntfalse << endl;    return 0;}