字符统计
题目描述
李老师给出了两个字符串 a 和 b,并给小A同学布置了两个任务。
- 统计两个字符串中公共字符的个数。例如
ABACFGG
和AAADCG
,两个串中都包含 22 个字母A
,11 个字母C
和 11 个字母G
,所以公共字符个数为 44 。 - 统计两个字符串相同位置处相同字符的个数。例如
ABACFGG
和AAADCG
,在 1,3,61,3,6 号位置上的字符相同,即 33 个。
现在,请你编写程序帮小A同学完成这两个任务。
输入格式
第一行:字符串 a,仅包含大写字母,长度 ≤1000≤1000 。
第一行:字符串 b,仅包含大写字母,长度 ≤1000≤1000 。
输出格式
第一行一个整数:公共字符的个数。
第二行一个整数:相同位置处相同字符的个数。
样例 #1
样例输入 #1
ABACFGG
AAADCG
样例输出 #1
4
3
#include <bits/stdc++.h>
using namespace std;
string a,b;
int ha[130],hb[130];
int ans1=0,ans2=0;
int main()
{
cin>>a>>b;
for(int i=0;i<a.size();i++)
{
ha[a[i]]++;
}
for(int i=0;i<b.size();i++)
{
hb[b[i]]++;
}
for(int i='A';i<='Z';i++)
{
ans1+=min(ha[i],hb[i]);
}
cout<<ans1<<endl;
int len=min(a.size(),b.size());
for(int i=0;i<len;i++)
{
if(a[i]==b[i])
{
ans2++;
}
}
cout<<ans2<<endl;
return 0;
}