PAT A1092 To Buy or Not to Buy 第一个串中元素进入hash数组并计数,第二个串中元素与数组消消乐,如果有消不掉的则cnt++。如果结束后cnt不为零则no,否则yes去数组里数数 #include<iostream> #include<vector> #include<string> using namespace std; #define MAXSIZE 256 vector<int> shot; string input,target; int cnt = 0; int main(){ shot.resize(MAXSIZE); cin >> input >> target; for(int i = 0;i < input.length();i ++) shot[input[i]] ++; for(int i = 0;i < target.length();i ++){ if(shot[target[i]] > 0) shot[target[i]] --; else cnt ++; } if(cnt) cout << "No " << cnt; else{ int remain = 0; for(int i = 0;i < shot.size();i ++){ if(shot[i]) remain += shot[i]; } cout << "Yes " << remain; } return 0; }