题意:
n个房间排成一排,每个房间里有一把钥匙,房间之间有门,大写字母代表门小写字母代表钥匙,对应的字母可以打开对应的门,从左到右,要从第一个房间到达地n个房间,问需要买几把钥匙(到达一个房间可以拿到其中的钥匙,钥匙只能使用一次,如果手中没有能打开这个门的钥匙可以购买)。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxm=1e6+10;
char s[maxm];
int a[30];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
memset(a,0,sizeof(a));
scanf("%s",s);
int cnt=0;
for(int i=0;i<2*n-2;i++)
{
if(i%2==0)
{
a[s[i]-'a']++;
}
else
{
if(a[s[i]-'A']==0)
{
cnt++;
}
else
{
a[s[i]-'A']--;
}
}
}
printf("%d\n",cnt);
}
return 0;
}