1039 到底买不买

只要有一个珠子缺少,那么就是缺少珠子,我们需要将缺少的珠子(mp[x]<0的)加起来。

#include <bits/stdc++.h>
using namespace std;
char cs[1100],cs2[1100];
map<char,int> mp;
int main(){
	cin>>cs>>cs2;
	for(int i=0;i<strlen(cs);i++){
		mp[cs[i]]++;
	}
	int qs=0,dy=0,flag=0;//不缺少珠子 
	for(int i=0;i<strlen(cs2);i++){
        if(mp[cs2[i]]>0){
        	mp[cs2[i]]--;//减少 
		}else{ 
			flag=1;//缺少珠子 
			mp[cs2[i]]--;
		}
	}
	int dist = 0;
	if(flag){
        for(auto x : mp){
        	if(x.second < 0){
        		dist += abs(x.second);
			}
		}
		cout << "No" << " " << dist;
	}else{
        for(auto x : mp){
        	if(x.second > 0){
        		dist += x.second;
			}
		}
		cout << "Yes" << " " << dist;
	}
	return 0;
}
posted @ 2024-04-17 20:35  YuKiCheng  阅读(6)  评论(0编辑  收藏  举报