码迷,mamicode.com
首页 > 其他好文 > 详细

字符串专题:map POJ 1002

时间:2016-05-08 16:55:53      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:

第一次用到是在‘校内赛总结’扫地那道题里面,大同小异

map<string,int>str 可以专用做做字符串的匹配之类的处理

string donser;

str [donser]++ 自动存donser到map并且值加一,如果发现重复元素不新建直接加一,

map第一个参数是key,默认字典序升序排列key

map<string,int>::iterator ii;         map的迭代器
for(ii=outputer.begin();ii!=outputer.end();++ii)  迭代器遍历
{
  if(ii->second>1)                     map第一个参数 ii->first或者 (*ii).first ;第二个参数 ii->second或者 (*ii).second
  {
    donser=ii->first;
    cout<<donser<<" "<<ii->second<<endl;
  }
}

POJ 1002 http://poj.org/problem?id=1002

对电话号码做化数字处理,然后匹配

#include<iostream>
#include<cstdio>
#include<string>
#include<map>
using namespace std;
string astr;
void deal()
{
    int len=astr.size();
    for(int i=0;i<len;i++)
    {
        if(astr[i]==-)
        {
            astr.erase(i,1);
            i--;
            continue;
        }
        if(astr[i]==A||astr[i]==B||astr[i]==C)
        {
            astr.replace(i,1,"2");
        }
        if(astr[i]==D||astr[i]==E||astr[i]==F)
        {
            astr.replace(i,1,"3");
        }
        if(astr[i]==G||astr[i]==H||astr[i]==I)
        {
            astr.replace(i,1,"4");
        }
        if(astr[i]==J||astr[i]==K||astr[i]==L)
        {
            astr.replace(i,1,"5");
        }
        if(astr[i]==M||astr[i]==N||astr[i]==O)
        {
            astr.replace(i,1,"6");
        }
        if(astr[i]==P||astr[i]==R||astr[i]==S)
        {
            astr.replace(i,1,"7");
        }
        if(astr[i]==T||astr[i]==U||astr[i]==V)
        {
            astr.replace(i,1,"8");
        }
        if(astr[i]==W||astr[i]==X||astr[i]==Y)
        {
            astr.replace(i,1,"9");
        }
    }
    return;
}
int main()
{
    int T,lable=0;
    map<string,int>outputer;
    scanf("%d",&T);
    int i=0,j=T;
    while(j--)
    {
        cin>>astr;
        deal();
        outputer[astr]++;
    }
    map<string,int>::iterator ii;
    for(ii=outputer.begin();ii!=outputer.end();++ii)
    {
        if(ii->second>1)
        {
            astr=ii->first;
            astr.insert(3,"-");
            cout<<astr<<" "<<ii->second<<endl;
            lable=1;
        }
    }
    if(!lable) cout<<"No duplicates.";
    return 0;
}

 

字符串专题:map POJ 1002

标签:

原文地址:http://www.cnblogs.com/dzzy/p/5470841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!