[PAT乙级]1039 到底买不买
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                [PAT乙级]1039 到底买不买
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                小紅想買些珠子做一串自己喜歡的珠串。賣珠子的攤主有很多串五顏六色的珠串,但是不肯把任何一串拆散了賣。于是小紅要你幫忙判斷一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告訴她有多少多余的珠子;如果不是,那么告訴她缺了多少珠子。
為方便起見,我們用[0-9]、[a-z]、[A-Z]范圍內的字符來表示顏色。例如在圖1中,第3串是小紅想做的珠串;那么第1串可以買,因為包含了全部她想要的珠子,還多了8顆不需要的珠子;第2串不能買,因為沒有黑色珠子,并且少了一顆紅色的珠子。
輸入格式:
每個輸入包含 1 個測試用例。每個測試用例分別在 2 行中先后給出攤主的珠串和小紅想做的珠串,兩串都不超過 1000 個珠子。
 輸出格式:
如果可以買,則在一行中輸出 Yes 以及有多少多余的珠子;如果不可以買,則在一行中輸出 No 以及缺了多少珠子。其間以 1 個空格分隔。
 輸入樣例 1:
輸出樣例 1:
Yes 8輸入樣例 2:
ppRYYGrrYB225 YrR8RrY輸出樣例 2:
No 2代碼如下:
#include <iostream> #include <string> using namespace std; const int N = 300;int vis[N];int main() {string a;string b;cin >> a >> b;for (int i = 0; i < a.length(); i++){vis[a[i]]++;}for (int i = 0; i < b.length(); i++){vis[b[i]]--;}int sum = 0;int sum1 = 0;bool flag = true;for (int i = 0; i < 300; i++){if (vis[i] >= 0 && flag){sum += vis[i];}else if (vis[i] < 0 ){flag = false;sum1 += vis[i];}}if (flag){cout << "Yes" << " ";cout << sum << endl;}else{cout << "No" << " ";cout << sum1*(-1) << endl;}return 0; }總結
以上是生活随笔為你收集整理的[PAT乙级]1039 到底买不买的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 数字转换为中文大写金额,我用了2小时,同
- 下一篇: UC神马搜索怎么用 手机端UC神马搜索引
