题目描述


分析:
用一个数组记录第一串珠子中各种颜色的珠子数量,完后遍历第二串珠子,第二串每种珠子减一,当为负数时说明缺少,记录缺少的数量。假如不缺少输出两个珠子的数量差即为多的珠子的数量
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int HashTable[256];
char str[1005];
int main(){
memset(HashTable,0,sizeof(HashTable));
cin.getline(str,1005);
int len1=strlen(str);
for(int i=0;i<len1;i++){
HashTable[str[i]]++;
}
int miss=0;
cin.getline(str,1005);
int len2=strlen(str);
for(int i=0;i<len2;i++){
HashTable[str[i]]--;
if(HashTable[str[i]]<0)
miss++;
}
if(miss>0)
cout<<"No "<<miss<<endl;
else
cout<<"Yes "<<len1-len2<<endl;
}
本文介绍了一种通过数组记录珠子颜色数量的方法来判断两串珠子是否匹配,并计算出多出或缺少的珠子数量。使用C++实现,通过遍历字符串更新哈希表中的计数。
4331

被折叠的 条评论
为什么被折叠?



