PAT-B 1039 到底買不買【對映】
PAT-B 1039 到底買不買
https://pintia.cn/problem-sets/994805260223102976/problems/994805283241443328
題目
小紅想買些珠子做一串自己喜歡的珠串。賣珠子的攤主有很多串五顏六色的珠串,但是不肯把任何一串拆散了賣。於是小紅要你幫忙判斷一下,某串珠子裡是否包含了全部自己想要的珠子?如果是,那麼告訴她有多少多餘的珠子;如果不是,那麼告訴她缺了多少珠子。為方便起見,我們用[0-9]、[a-z]、[A-Z]範圍內的字元來表示顏色。例如在圖1中,第3串是小紅想做的珠串;那麼第1串可以買,因為包含了全部她想要的珠子,還多了8顆不需要的珠子;第2串不能買,因為沒有黑色珠子,並且少了一顆紅色的珠子。
圖 1
輸入
每個輸入包含 1 個測試用例。每個測試用例分別在 2 行中先後給出攤主的珠串和小紅想做的珠串,兩串都不超過 1000 個珠子。
輸出
如果可以買,則在一行中輸出 Yes
以及有多少多餘的珠子;如果不可以買,則在一行中輸出 No
以及缺了多少珠子。其間以 1 個空格分隔。
樣例輸入
ppRYYGrrYBR2258
YrR8RrY
樣例輸出
Yes 8
分析
使用陣列統計兩個字串中各個字元出現的次數即可,具體看程式。
C++程式
#include<iostream>
using namespace std;
int num1[200];//num[i]記錄ASCII碼為i的字元出現的次數(攤主)
int num2[200];//小紅
int main()
{
char ch;
bool flag=true;
int sum1=0,sum2=0,ans=0;//sum1記錄字串1的長度,sum2記錄字串2的長度
while((ch=getchar())!='\n') num1[ch]++,sum1++;//攤主
while((ch=getchar())!='\n') num2[ch]++,sum2++;//小紅
for(int i=1;i<200;i++)
if(num1[i]<num2[i])
{
flag=false;//不能買
ans+=num2[i]-num1[i];//差的數量
}
if(flag)
printf("Yes %d\n",sum1-sum2);
else
printf("No %d\n",ans);
return 0;
}
相關文章
- 21行滿分程式碼:1039 到底買不買 (20分)
- PAT-B 1042 字元統計 【對映】字元
- 看到有人猶豫買不買教程有感
- PAT-B 1041 考試座位號【對映】
- PAT-B 1065 單身狗【對映+集合】
- PAT-B 1021 個位數統計【對映】
- 買量生,不買死,抖音爆款當真活不過半年?
- 沒有鈔能力,索尼怎樣才能對抗“買買買”的微軟?微軟
- PAT-B 1025 反轉連結串列【模擬+對映】
- PAT-B 1038 統計同成績學生【對映】
- 購買對公賬戶
- 購買對公賬戶
- 我發現買不起自己出版的圖書了,這到底是咋回事?
- 究竟你適不適合買Mac?Mac
- 2019微信小程式“買買買”報告微信小程式
- PAT-B 1068 萬綠叢中一點紅【對映+陣列】陣列
- 買賣企業對公賬戶
- 我們到底需不需要摺疊屏?不買摺疊屏手機的5個理由!
- nginx容器卷對映檔案不生效Nginx
- 9102年了,到底是誰還在買GTA5?
- 買高仿包包在哪裡買
- 買黃金,還是買比特幣?比特幣
- 公司對公賬戶過賬買賣
- 漫畫通訊:有了它,終於可以放心買買買了
- 剁手買買買!HTCVive送Steam上任意三款VR應用VR
- 買筆
- 我快買不起 PS5 遊戲了遊戲
- 控制不住「買買買」?五個心理學理論幫你瞭解自己
- B站快手米哈遊:除了騰訊,他們也在買買買
- iOS手遊買量報告|蘋果下架事件對買量的影響大嗎?iOS蘋果事件
- 為何有人寧願買二手或翻新iPhone,也不願意買全新安卓新機?iPhone安卓
- 不“買量”,全球收入最高!《原神》營銷覆盤
- 淘寶買的高仿包會不會很假
- 搭配購買
- 土地購買
- AG買分
- 對映
- 股票買賣:如何把握股票的最佳買賣點?