链接:https://www.nowcoder.com/questionTerminal/ceb89f19187b4de3997d9cdef2d551e8
来源:牛客网


上图是一个电话的九宫格,如你所见一个数字对应一些字母,因此在国外企业喜欢把电话号码设计成与自己公司名字相对应。例如公司的Help Desk号码是4357,因为4对应H、3对应E、5对应L、7对应P,因此4357就是HELP。同理,TUT-GLOP就代表888-4567、310-GINO代表310-4466。

NowCoder刚进入外企,并不习惯这样的命名方式,现在给你一串电话号码列表,请你帮他转换成数字形式的号码,并去除重复的部分。

输入描述:

输入包含多组数据。

每组数据第一行包含一个正整数n(1≤n≤1024)。

紧接着n行,每行包含一个电话号码,电话号码仅由连字符“-”、数字和大写字母组成。
没有连续出现的连字符,并且排除连字符后长度始终为7(美国电话号码只有7位)。

输出描述:

对应每一组输入,按照字典顺序输出不重复的标准数字形式电话号码,即“xxx-xxxx”形式。
每个电话号码占一行,每组数据之后输出一个空行作为间隔符。

示例1

输入:
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
4
UTT-HELP
TUT-GLOP
310-GINO
000-1213
输出:
310-1010
310-4466
487-3279
888-1200
888-4567
967-1111000-1213
310-4466
888-4357
888-4567

【题目解析】:
借助 hash 表完成字母和数字之间的转换即可,注意大小写的情况!

【解题思路】:

  1. 先用 hash 表存储字母和数字之间的映射关系
  2. 每次读到一个字符,去hash表中查找,并进行处理即可

【代码展示】:

import java.util.*;//先用hash表存储字母和数字之间的映射关系
//每次读到一个字符,去hash表中查找
public class Main {public static void main(String[] args) {//借助字符串当成一个表,完成字母和数字之间的转换即可String symbol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";String number = "222333444555666777788899991234567890";Scanner sc = new Scanner(System.in);while(sc.hasNext()) {int n = sc.nextInt();ArrayList<String> list = new ArrayList<>();for(int i = 0; i < n; i++) {String str = sc.next();str = str.replace("-", "");String result = "";for(int j = 0; j < 7; j++) {result += number.charAt(symbol.indexOf(str.charAt(j)+""));}result = result.substring(0, 3) + "-" + result.substring(3, 7);if(!list.contains(result)) {list.add(result);}}Collections.sort(list);for(int j = 0; j < list.size(); j++) {System.out.println(list.get(j));}System.out.println();}}
}

最后一句 System.out.println(); 不写是过不了的,注意~

最主要的是这句 number.charAt(symbol.indexOf(str.charAt(j)+"")) !!!

[牛客网] 电话号码相关推荐

  1. [C++] 牛客网:合并两个有序的数组

    主要是体验一下牛客网里的核心代码模式到底是怎么弄的..还有C++这个东西平常用的太少了,试一试. 以外的还体验到了sort()函数的使用. 来源:牛客网 题目链接:合并两个有序的数组 知识点:数组.双 ...

  2. 字节跳动java笔试题目_牛客网--字节跳动面试题--特征提取

    牛客网--字节跳动面试题--特征提取 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 来源 链接:特征提取 来源:牛客网 题目 ...

  3. 牛客网:为什么不能将实数作为 HashMap 的 key?

    欢迎关注方志朋的博客,回复"666"获面试宝典 1.起因 让我关注到这一点的起因是一道题:牛客网上的max-points-on-a-line 题目是这么描述的: Given n p ...

  4. 牛客网在线编程----算法入门篇

    标题本篇博文主要是记录下自己的在线编程情况,初次练习,有的算法还待改进,大家有需要可以去牛客网上面多练练! 有需戳–>牛客网在线编程 NC65.题目描述 大家都知道斐波那契数列,现在要求输入一个 ...

  5. 牛客网数据开发题库_练习SQL利器,牛客网SQL实战题库

    牛客网SQL实战网址:https://www.nowcoder.com/ta/sql 持续更新--记录自己在牛客网SQL的做题过程 更新进度:61题,2019-4-3,更完了 1.查找最晚入职员工的所 ...

  6. 牛客网 Wannafly挑战赛8 A.小Y和小B睡觉觉

    写了一会不想写了... A-小Y和小B睡觉觉 链接:https://www.nowcoder.com/acm/contest/57/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制 ...

  7. 牛客网 2018年全国多校算法寒假训练营练习比赛(第三场)D.小牛vs小客-博弈

    菜哭... D.小牛vs小客 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 链接:https://ww ...

  8. 牛客网——求平均年龄(水题)

    题目描述 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位. 输入描述: 第一行有一个整数n(1<= n <= 100),表示学生的人数.其后n行 ...

  9. 牛客网平台常州大学新生寒假训练会试

    A-添加逗号 链接:https://www.nowcoder.net/acm/contest/78/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其 ...

最新文章

  1. 六年磨一剑,全时发布音视频会议平台TANG,多款新品亮相
  2. shell脚本判断进程是否运行
  3. 绝地求生服务器延迟高低排序,绝地求生:延迟不可怕,大神教你如何高ping吃鸡!...
  4. 高并发MPP查询引擎Impala初识
  5. CSP认证201609-4 交通规划[C++题解]:最短路径树、dijkstra求单源最短路、递推思想
  6. 十进制数与八进制数互相转换(MATLAB和C版本)
  7. 归纳一下:C#线程同步的几种方法
  8. Linux服务器--CentOS7上实现LAMP(PhpMyAdmin,WordPress,Discuz)
  9. 视音频格式基础知识视频压缩
  10. 前台向后台传递汉字参数时遭遇的问题
  11. oracle日期类型格式转换,Oracle日期类型转换格式
  12. 完美解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
  13. java基础杂谈(二)
  14. python监听鼠标键盘_python用pynput监听控制键盘鼠标
  15. 学习笔记-基于全局和局部对比自监督学习的高分辨率遥感图像语义分割-day1
  16. 第九讲:因子分析(Factor analysis)
  17. mdb实时同步mysql_Mysql的实时同步 - 双机互备
  18. 魔方世界服务器文件,魔方世界服务器补丁
  19. 摩拜单车的“黑科技”
  20. Windows 8 下载

热门文章

  1. Oracle 压缩表与压缩表空间
  2. 淘宝/天猫按分类搜索淘宝直播接口 API 返回值说明
  3. 在线教育,网校平台,线上平台,线上教育的一些个人理解!
  4. Linux网卡模块,裁剪Linux并实现网卡模块的安装(附有命令移植的脚本)
  5. 选计算机硬盘原则和注意事项,旧电脑升级是升内存还是SSD?按照这个原则就对了!...
  6. Leetcode1859:将句子排序
  7. 男孩子学医好还是学计算机好,男孩子学医选什么专业好 最有前景的医学类专业...
  8. pytorch的cuda环境搭建(GPU版本安装)
  9. (三)shp路网数据导入postgres中
  10. 实时语音场景下的智能对话