【PAT甲级】1092 To Buy or Not to Buy (20 分)
题意:
输入两行字符串,如果第二行字符串包含于第一行字符串,输出"Yes"以及第一行字符串减去第二行字符串剩余的字符个数,否则输出"No"以及第二行字符串中不在第一行字符串中的字符个数(同一字符可能出现多次,对个数敏感)。
AAAAAccepted code:
1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 string s1,s2; 5 int num[307],vis[307]; 6 int main(){ 7 ios::sync_with_stdio(false); 8 cin.tie(NULL); 9 cout.tie(NULL); 10 cin>>s1>>s2; 11 int sum=0; 12 for(int i=0;i<s2.size();++i){ 13 ++num[s2[i]-'0']; 14 vis[s2[i]-'0']=1; 15 } 16 int cnt=0; 17 for(int i=0;i<s1.size();++i){ 18 if(vis[s1[i]-'0']){ 19 if(num[s1[i]-'0']>0) 20 --num[s1[i]-'0']; 21 else 22 ++cnt; 23 } 24 else 25 ++cnt; 26 } 27 int flag=0; 28 for(int i=0;i<300;++i) 29 if(num[i]>0) 30 flag+=num[i]; 31 if(flag) 32 cout<<"No "<<flag; 33 else 34 cout<<"Yes "<<cnt; 35 return 0; 36 }
保持热爱 不懈努力
不试试看怎么知道会失败呢(划掉)
世上无难事 只要肯放弃(划掉)