`
iluoxuan
  • 浏览: 577251 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

map的应用,统计电话

 
阅读更多

 

package beida.acm;

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class Phonenum {
	 public static char getNum(char c) {   
	        if (Character.isDigit(c)) {   
	            return c;   
	        }   
	        if (c == 'A' || c == 'B' || c == 'C') {   
	            return '2';   
	        }   
	        if (c == 'D' || c == 'E' || c == 'F') {   
	            return '3';   
	        }   
	        if (c == 'G' || c == 'H' || c == 'I') {   
	            return '4';   
	        }   
	        if (c == 'J' || c == 'K' || c == 'L') {   
	            return '5';   
	        }   
	        if (c == 'M' || c == 'N' || c == 'O') {   
	            return '6';   
	        }   
	        if (c == 'P' || c == 'R' || c == 'S') {   
	            return '7';   
	        }   
	        if (c == 'T' || c == 'U' || c == 'V') {   
	            return '8';   
	        }   
	        if (c == 'W' || c == 'X' || c == 'Y') {   
	            return '9';   
	        }   
	        return '#';   
	    }   

	public static void main(String[] args) throws NumberFormatException, IOException {
		 
		DataInputStream scan = new DataInputStream(new BufferedInputStream(System.in));   
        Map< String, Integer> tm = new TreeMap();   
        int n = Integer.parseInt(scan.readLine().trim());
        for (int i = 0; i < n; i++) {   
            String s = scan.readLine().replace("-", "");
		
            StringBuilder sb = new StringBuilder();   
            for (int k = 0; k < s.length(); k++) {   
                char c = getNum(s.charAt(k));   
                if (Character.isDigit(c)) {   
                	System.out.print(c);
                	
                    sb.append(c);     
                }  
               
            }   
            System.out.println("-------");
            String result = sb.toString().substring(0, 3) + '-' + sb.toString().substring(3);   
            if (tm.containsKey(result)) {   
                int count = tm.get(result) + 1;   
                tm.put(result, count);   
            } else {   
                tm.put(result, 1);   
            }   
        }   
        Set se = tm.keySet();   
        Iterator it = se.iterator();   
        boolean flag = false;   
        while (it.hasNext()) {   
            String s = it.next().toString();   
            int count = tm.get(s);   
            if (count > 1) {   
                flag = true;   
                System.out.println(s + " " + count);   
            }   
        }   
        if (!flag) {   
            System.out.println("No duplicates. ");   
        }   
   
}
}

 输入:12

4873279
ITS-EASY
888-4567
3-10-10-10
888-GLOP
TUT-GLOP
967-11-11
310-GINO
F101010
888-1200
-4-8-7-3-2-7-9-
487-3279

 

分享到:
评论

相关推荐

    Special_topics_containers_map_2018.pdf

    根据给定的文件信息,本文将深入探讨...无论是处理电话号码簿、元素周期表还是其他需要快速查找和存储键值对的应用场景,`containers.Map`都能够发挥重要作用。通过充分利用其特性,可以大大提升程序的效率和可读性。

    MapReduce数据统计简单实例

    在Hadoop生态系统中,MapReduce被广泛应用于大数据的处理,它将复杂的并行计算任务分解为两个主要阶段:Map(映射)和Reduce(规约)。在这个“MapReduce数据统计简单实例”中,我们将探讨如何使用Hadoop的Eclipse...

    2009.6.19—30举办3S研讨会暨Google Earth与Google Map等仿真建模与共享及ARCGIS与遥感高级程序员培训班

    关于举办2009’CHINA3S’3S技术一体化应用研讨会暨遥感与GIS制图、Google Earth与Google Map等虚拟三维仿真建模与共享软件应用开发及ARCGIS与遥感分析操作应用高级程序员学习班的最新通知 (2009.6.19—30) Google...

    NGN网络中数据处理研究.pdf

    在实际应用中,Map结构被广泛用于需要快速查找操作的场合。例如,在MFC(Microsoft Foundation Classes)框架中,Map被用来实现句柄映射和其他一些内部数据结构。MFC还提供了一个公共Map类,使得程序员可以更方便地...

    POJ 1002 487-3279解题报告

    3. **统计电话号码出现次数**:使用哈希表存储电话号码及其出现次数。 - 如果哈希表中已存在该电话号码,则更新其计数值。 - 如果哈希表中不存在该电话号码,则插入一个新的键值对。 4. **输出重复电话号码**:...

    3G 应用下的USSD解决方案

    4. **统计分析模块**:收集和分析平台的呼叫信息,用于性能优化和故障诊断。 5. **监控和告警模块**:实时监控系统状态,自动检测异常并生成告警信息,提高运维效率。 6. **短信接口**:负责短信的收发处理,增强...

    常用大数据量、海量数据处理方法__算法总结.pdf

    在处理海量电话号码去重时,使用Bit-Map可以高效地统计不重复的电话号码数量。 在处理大数据时,需要综合考虑空间复杂度、时间复杂度、误判率等因素。因此,选择合适的算法往往需要根据具体的应用场景和数据特性。...

    JAVA实现简单的教师管理系统

    统计教师的学历、职称等信息可能需要用到Map数据结构,如HashMap,用键值对存储职称与对应人数,便于快速统计。 通过以上技术的组合运用,我们可以构建一个功能完备、易用的教师管理系统,满足教学管理的实际需求...

    大数据量的处理问题.pdf

    本文主要探讨了三种处理大数据的常见方法:Bloom Filter、Hashing以及Bit-Map,并通过具体的实例来阐述它们的应用。 1. **Bloom Filter**是一种空间效率极高的概率型数据结构,用于测试一个元素是否在一个集合中。...

    海量数据处理总结(大量数据处理)

    - **应用场景**:例如,在统计文件中不同电话号码的个数时,由于电话号码的范围通常不超过10亿,因此使用Bit-Map可以在相对较小的内存空间内完成任务。 ### 实际应用案例分析 - **案例一:URL相似性检测**:给定A...

    matlab语音分帧代码-GMM-UBM_MAP_SV:用于训练和测试GMM-UBM和基于最大后验(MAP)自适应的说话人验证的Python代

    在实际应用中,这样的系统可能被用于安全系统,如声纹识别登录、电话银行验证等。理解并掌握这一技术有助于开发出更加智能和可靠的语音识别与验证解决方案。由于这是一个开源项目,学习和贡献代码不仅可以提升个人...

    大数据量,海量数据 处理方法总结

    8位电话号码的范围在10M左右,使用Bit-Map结构,仅需几十MB的内存即可完成统计。 4. **整数去重计数**:在2.5亿个整数中找出不重复的整数个数,当内存不足以存储全部整数时,可通过Bit-Map或Bloom Filter来估算不同...

    大数据量的处理问题.docx

    - **应用场景**:在海量日志数据分析中,可以通过Bit-Map快速统计特定事件的发生次数,如题目中提到的找出访问次数最多的IP。 以上三种技术在处理大数据时,各有优势和局限性。Bloom Filter节省空间但可能导致误报...

    基于文档的NoSQL存储技术CouchDB.pdf

    2. CouchDB是面向文档的数据库,存储半结构化的数据,比较类似lucene的index结构,特别适合存储文档,因此很适合CMS、电话本、日志记录等应用。 基于文档的NoSQL存储技术CouchDB是解决Web2.0网站、云计算和社交网络...

    tell-bill.rar_biller_visual c

    此程序通过读取、解析和计算电话账单数据,为用户提供了清晰的费用明细和统计分析,有助于优化通信开支,避免不必要的费用。 该项目使用C++编程语言,C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅...

    Google, Baidu, Tencent 面试题总结

    **问题实例**:已知文件内包含一些8位数字组成的电话号码,需要统计其中不同电话号码的数量。可以使用Bit-Map来进行快速统计,所需内存约为10MB左右。 ### 总结 通过对Google、Baidu、Tencent等公司在面试中常用的...

    学生通讯录(C++)

    总的来说,这个学生通讯录系统展示了C++在数据结构和面向对象编程方面的应用,包括类的设计、成员函数的使用、友元函数的概念,以及STL容器的灵活运用。通过这样的系统,用户可以方便地管理大量学生信息,进行搜索、...

    C++学生通讯录源代码

    这个系统可能是为了满足日常管理学生联系信息的需求,它允许用户存储、查找和更新学生的姓名、电话号码、电子邮件等信息。这个项目不仅体现了对C++基础知识的理解,还涉及到面向对象编程(OOP)的概念,如类的设计、...

    高德地图 行政区编码

    行政区域编码的作用在于便于计算机处理和比较地理信息,尤其是在大数据分析、定位服务、物流配送、人口统计等方面有着广泛的应用。 AMap_adcode_citycode.xlsx这个文件很可能是高德地图提供的一份Excel表格,其中...

    大数据处理方法

    - **电话号码统计:** 已知文件包含若干8位电话号码,统计不同号码的数量。 - **不重复整数计数:** 在2.5亿个整数中找出不重复的整数个数,即使内存不足以存储全部整数。 综上所述,以上介绍的大数据处理方法包括...

Global site tag (gtag.js) - Google Analytics