林大1510

//会用map真的很好
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <map>
using namespace std;
map <int,int> p;//这是大佬想出来的 太棒了
int zhuan(char s[])
{
   int ans=0,len;
   len=strlen(s);
   for(int i=0;i<len;i++)
   {
    int n=s[i]-'0';
    n=n%2;//只要奇偶一样就可以,所以对二余
    ans=ans*2+n;//这个操作是为了,奇偶的操作位数(个位,十位啥的)一致
   }
   return ans;
}
int main()
{
   int n;
   char s[2],str[20];
   scanf("%d",&n);
   while(n--)
   {
       scanf("%s%s",s,str);
       int tmp=zhuan(str);
       if(s[0]=='+')
       {

        // if(p.find(tmp)!=p.end())
         //{
             p[tmp]++;
         //}
       }
       if(s[0]=='-')
       {
           if(p[tmp]==1)
           {
               p.erase(tmp);
           }
           else
           p[tmp]--;
       }
       if(s[0]=='?')
       {
           printf("%d\n",p[tmp]);
       }

   }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值