21行滿分程式碼:1039 到底買不買 (20分)
立志用更少的程式碼做更高效的表達
小紅想買些珠子做一串自己喜歡的珠串。賣珠子的攤主有很多串五顏六色的珠串,但是不肯把任何一串拆散了賣。於是小紅要你幫忙判斷一下,某串珠子裡是否包含了全部自己想要的珠子?如果是,那麼告訴她有多少多餘的珠子;如果不是,那麼告訴她缺了多少珠子。
為方便起見,我們用[0-9]、[a-z]、[A-Z]範圍內的字元來表示顏色。例如在圖1中,第3串是小紅想做的珠串;那麼第1串可以買,因為包含了全部她想要的珠子,還多了8顆不需要的珠子;第2串不能買,因為沒有黑色珠子,並且少了一顆紅色的珠子。
輸入格式:
每個輸入包含 1 個測試用例。每個測試用例分別在 2 行中先後給出攤主的珠串和小紅想做的珠串,兩串都不超過 1000 個珠子。
輸出格式:
如果可以買,則在一行中輸出 Yes 以及有多少多餘的珠子;如果不可以買,則在一行中輸出 No 以及缺了多少珠子。其間以 1 個空格分隔。
輸入樣例 1:
ppRYYGrrYBR2258
YrR8RrY
輸出樣例 1:
Yes 8
輸入樣例 2:
ppRYYGrrYB225
YrR8RrY
輸出樣例 2:
No 2
解題思路:
定義陣列, 存放珠子的個數, 遍歷判斷即可。 如果有缺少的珠子, 就輸出no和缺少個數。 如果沒有,就輸出yes和串1長度-串2長度的值。
#include<bits/stdc++.h>
using namespace std;
int a1[300], a2[300]; //統計珠子的個數
int a3[300]; //檢視是否重複
int main() {
string s1, s2;
cin >> s1 >> s2;
int num = 0; //計算缺少珠子的個數
int len1 = s1.length(), len2 = s2.length();
for(int i = 0; i < len1; i++) a1[s1[i]]++; //統計珠子的個數
for(int i = 0; i < len2; i++) a2[s2[i]]++;
for(int i = 0; i < len2; i++) {
if((a1[s2[i]] < a2[s2[i]]) && a3[s2[i]]==0) { //如果串1珠子個數小於串2, 並且沒有判斷過,
num += a2[s2[i]] - a1[s2[i]];
a3[s2[i]] = 1;
}
}
if(num > 0) cout << "No" << ' ' << num;
else cout << "Yes" << ' ' << len1 - len2;
return 0;
}
每日一句
零星的變好,最後也會如星河般閃耀。
相關文章
- PAT-B 1039 到底買不買【對映】
- AG買分
- 看到有人猶豫買不買教程有感
- 2019微信小程式“買買買”報告微信小程式
- bbin買分和AG買分兩個可以同時操作沒
- 買量生,不買死,抖音爆款當真活不過半年?
- 我發現買不起自己出版的圖書了,這到底是咋回事?
- 究竟你適不適合買Mac?Mac
- L1-091 程式設計師買包子 分數 10程式設計師
- 雲話題 | 第3期 你女朋友在買買買時,程式設計師小哥在幹嘛?程式設計師
- 我們到底需不需要摺疊屏?不買摺疊屏手機的5個理由!
- 如何看股票分時圖買入法
- WHQL 認證需要購買EV 程式碼簽名證書
- 9102年了,到底是誰還在買GTA5?
- 買黃金,還是買比特幣?比特幣
- 買高仿包包在哪裡買
- 漫畫通訊:有了它,終於可以放心買買買了
- 剁手買買買!HTCVive送Steam上任意三款VR應用VR
- 買筆
- CSP-CCF 202006-1 線性分類器 滿分程式碼
- 我快買不起 PS5 遊戲了遊戲
- 沒有鈔能力,索尼怎樣才能對抗“買買買”的微軟?微軟
- 控制不住「買買買」?五個心理學理論幫你瞭解自己
- B站快手米哈遊:除了騰訊,他們也在買買買
- 工作一兩年的程式設計師,有點錢,買房還是買車?程式設計師
- 為何有人寧願買二手或翻新iPhone,也不願意買全新安卓新機?iPhone安卓
- CCF 202009-2 風險人群篩查 滿分程式碼
- Redis-PHP版購買商品小程式RedisPHP
- 華強買瓜•程式設計師版程式設計師
- 不“買量”,全球收入最高!《原神》營銷覆盤
- 淘寶買的高仿包會不會很假
- 搭配購買
- 土地購買
- Caliber:調查發現特斯拉買家購買意願受馬斯克形象影響 2月份考慮購買評分下降至31%馬斯克
- 以後買焊錫注意買無鉛的吧
- 股票買賣:如何把握股票的最佳買賣點?
- 送禮買茶葉在哪裡買比較好?
- 線上買球哪個app好 買球去哪一個app買比較好APP