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

POJ 1002 487-3279

时间:2020-03-05 01:10:43      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:als   mes   col   mamicode   begin   电话号码   stream   space   code   

487-3279

技术图片

 

 技术图片

 

 技术图片

 

思路:看到这个题,我们可以把它分成两个部分,第一个部分是将数据变为电话号码,第二部分是找出出现次数大于1的电话号码,并且输出。其实,分为两个部分后就不难了,第一部分通过一个函数进行转化,第二部分,利用map容器进行统计。

代码:

#include<iostream>
#include<map>
using namespace std;
char str[1001];
int sum = 0;
int fun(){
    int i, k = 0;
    sum = 0;
    for (i = 0; k < 7; i++){
        if (str[i] >= 0&&str[i] <= 9){
            sum = sum * 10 + str[i] - 0;
            k++;
        }
        if (str[i] >= A&&str[i] <= Z){
            sum = sum * 10 + ((str[i] - A - (str[i]>Q)) / 3 + 2);
            k++;
        }
    }
    return sum;
}


int main(){

    map<int, int>m;
    int n;
    cin >> n;
    getchar();
    for (int i = 0; i < n; i++){
        gets(str);
        m[fun()]++;
    }
    bool flag = false;

    map<int, int>::iterator it;
    for (it = m.begin(); it != m.end(); it++){
        if (it->second>1){
            printf("%03d-%04d %d\n", it->first / 10000, it->first % 10000, it->second);
            flag = true;
        }
    }
    if (!flag){
        printf("No duplicates.\n");
    }

    system("pause");
    return 0;
}

 

POJ 1002 487-3279

标签:als   mes   col   mamicode   begin   电话号码   stream   space   code   

原文地址:https://www.cnblogs.com/pcdl/p/12416988.html

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