K - Email Aliases CodeForces - 589A

本文介绍了一种处理电子邮件地址的算法,该算法能够处理大小写不敏感的问题,并且针对以@bmail.com结尾的邮箱地址进行了特殊处理。文章通过C++实现,展示了如何标准化邮箱地址并去除不必要的字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各种邮箱不分大小写,@bmail.com结尾是特殊的,后面再加东西就不是了
如果结尾是@bmail.com,那@前的点(.)可以忽略,第一个加号(包括)到@前都忽略
优秀的是对输出无要求。

#include <bits/stdc++.h>

using namespace std;
string a[20005];
map<string,int> mp;
map<string,string> feng;
map<string,int>::iterator it;


int main()
{
    int n;
    string str;
    while(scanf("%d", &n) != EOF)
    {
        for(int i = 1; i <= n; i++)
        {
            cin>>str;
            a[i] = str;
            for(int j = 0; j<str.length(); j++)
            if( isalpha(str[j]) )
                str[j] = tolower(str[j]);
            int z = str.find('@');
            if(str.substr(z+1) != "bmail.com")
            {
                mp[str]++;
                feng[str]+=" ";
                feng[str]+=a[i];
            }
            else
            {
                string s ="";
                for(int j = 0; str[j] != '@'; j++)
                {
                    if(str[j] == '+')
                        break;
                    else if(str[j] != '.')
                        s+=str[j];
                }
                s += str.substr(z);
                mp[s]++;
                feng[s]+=" ";
                feng[s]+=a[i];
            }
        }
        cout<<mp.size()<<endl;
        for(it = mp.begin(); it != mp.end(); it++)
        {
            cout<<it->second<<feng[it->first]<<endl;

        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值