POJ-1002: 487-3279 详解2: 号码全集法

> 分析

>> 由于题目对内存占用的限制在65535k, 因此可以定义

一个以电话号码为索引,值为电话号码出现次数的数组

> 直接附代码

/*---------------------------------
 * 使用电话号码全集
 * --------------------------------*/
#include "stdio.h"
#include "string.h"
#include "stdlib.h"

/* 字母到数字的映射表 */
const int map[26] = {
    2, 2, 2,    /* A, B, C */
    3, 3, 3,    /* D, E, F */
    4, 4, 4,    /* G, H, I */
    5, 5, 5,    /* J, K, L */
    6, 6, 6,    /* M, N, O */
    7, 0, 7, 7, /* P, Q, R, S */
    8, 8, 8,    /* T, U, V */
    9, 9, 9,    /* W, X, Y */
    0           /* Z */
} ;

/* 电话号码全集 */
int teleNum[10000000] = {0} ;

int main(void)
{
    int  n = 0 ;
    char s[50] = {0} ;
    int  num = 0 ;
    int  i = 0 ;
    int  min = 10000000 ;
    int  max = -1 ;

    scanf("%d", &n) ;
    while(n--)
    {
        memset(s, 0, sizeof(s)) ;
        scanf("%s", s) ;        

        /* 将电话号码转换为整型 */
        num = 0 ;
        for(i = 0; i < sizeof(s); i++)
        {
            if(0 == s[i])
                break ;
            if(‘Q‘ == s[i] || ‘Z‘ == s[i])
                continue ;
            if(s[i] >= ‘A‘ && s[i] <= ‘Z‘)
                num = num * 10 + map[s[i] - ‘A‘] ;
            if(s[i] >= ‘0‘ && s[i] <= ‘9‘)
                num = num * 10 + s[i] - ‘0‘ ;
        }

        teleNum[num]++ ;
        if(2 == teleNum[num])
        {
            min = num < min ? num : min ;
            max = num > max ? num : max ;
        }
    }

    if(-1 == max)
    {
        printf("No duplicates.\r\n") ;
        return 0 ;
    }

    for(i = min; i <= max; i++)
    {
        if(teleNum[i] < 2)
            continue ;

        printf("%03d-%04d %d\r\n", i / 10000,
            i % 10000, teleNum[i]) ;
    }

    return 0 ;
}
时间: 2024-11-05 19:54:55

POJ-1002: 487-3279 详解2: 号码全集法的相关文章

[2016-01-19][POJ][1002]

[2016-01-19][ACM][POJ 1002] 题目大意:给定一串号码,转化号码,然后输出重复的号码.   方法:读取->转换->计数->输出   解题过程遇到问题:   cin,cout貌似会WA(原因不详) 数组开太小,wa成dog,开到50能过. 忘记输出,No duplicates.的情况 不知道 map 自带排序,手动实现了一遍,2333 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

dump命令详解

基础命令学习目录首页 原文链接:http://mip.xuexila.com/diannao/xitong/linux/3609675.html linux系统下我们可以使用备份命令dump对系统文件进行备份,以免数据丢失.下面由学习啦小编为大家整理了linux下备份命令dump的相关知识,希望大家喜欢! linux备份命令dump详解 语 法: dump [-cnu][-0123456789][-b <区块大小>][-B <区块数目>][-d <密度>][-f <

js正则实现二代身份证号码验证详解

js正则实现二代身份证号码验证详解 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 地址码表示编码对象常住户口所在县(市.旗.区)的行政区划代码. 出生日期码表示编码对象出生的年.月.日,其中年份用四位数字表示,年.月.日之间不用分隔符. 顺序码表示同一地址码所标识的区域范围内,对同年.月.日出生的人员

POJ 1659 Frogs&#39; Neighborhood(可图性判定—Havel-Hakimi定理)【超详解】

Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 9897   Accepted: 4137   Special Judge Description 未名湖附近共有N个大小湖泊L1, L2, ..., Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N).如果湖泊Li和Lj之间有水路相连,则青蛙Fi和Fj互称为邻居.现在已知每只青蛙的邻居数目x1, x2, ..

poj 1611(详解)

The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 22217   Accepted: 10805 Description Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. T

poj 1942(详解)

Paths on a Grid Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 21439   Accepted: 5259 Description Imagine you are attending your math lesson at school. Once again, you are bored because your teacher tells things that you already mastere

Linux系统DNS详解(BIND)

一.Linux运维实战之DNS基础    DNS服务作为网络的一种基础架构,在网络中有举足轻重的地位.它担负着整个网络用户计算机的名称解析工作.没有正确的名称解析,服务器就无法识别各客户机.我们在日常进行的浏览网页等上网活动,无一例外都在使用DNS服务.*******************************************************************************    DNS的基本知识:        DNS服务器的组成        DNS域名称

linux查看端口及端口详解

今天现场查看了TCP端口的占用情况,如下图 红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说ESTABLISHED状态 ESTABLISHED的意思是建立连接.表示两台机器正在通信.      之后查找  ncube-lm  发现ncube-lm是一个端口,是nCube License Manager (即ncube管理的一个许可证明),意思是被允许,被认证开放的意思,,, 之后查看端口号 是1

Linux文件系统详解(文件系统层次、分类、存储结构、存储介质、文件节点inode)

从操作系统的角度详解Linux文件系统层次.文件系统分类.文件系统的存储结构.不同存储介质的区别(RAM.ROM.Flash).存储节点inode. 本文参考:http://blog.chinaunix.net/uid-8698570-id-1763151.html http://www.iteye.com/topic/816268 http://soft.chinabyte.com/os/142/12315142.shtml http://www.ibm.com/developerworks/