1039. 到底买不买(20) PAT 乙级&&1092. To Buy or Not to Buy (20)PAT甲级

来源:互联网 发布:sql语言是什么语言 编辑:程序博客网 时间:2024/06/06 16:25

甲级传送门
乙级传送门
用stl 中的map存下两个数中各自字符出现的次数,set中存了小红想做的珠子的所有颜色。
若能做成珠子,则两个字符串相减即为结果
若不能做成珠子,则mp2中对应的元素减去mp1对应元素之和即为结果

#include<iostream>#include<map>#include<set>using namespace std;int main(){    map<char,int> mp1,mp2;    set <char> s;    set<char>::iterator it;    string s1,s2;    int less=0;    bool flag=true;    cin>>s1>>s2;    for(int i=0;i<s1.length();i++){        mp1[s1[i]]++;    }    for(int i=0;i<s2.length();i++){        mp2[s2[i]]++;        s.insert(s2[i]);    }    for(it=s.begin();it!=s.end();it++){        if(mp2[*it]>mp1[*it]){            less+=mp2[*it]-mp1[*it];            flag=false;        }    }    if(flag)    cout<<"Yes "<<s1.length()-s2.length()<<endl;    else    cout<<"No "<<less<<endl;}
0 0
原创粉丝点击