[牛客网] 电话号码
链接: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 表完成字母和数字之间的转换即可,注意大小写的情况!
【解题思路】:
- 先用 hash 表存储字母和数字之间的映射关系
- 每次读到一个字符,去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)+""))
!!!
[牛客网] 电话号码相关推荐
- [C++] 牛客网:合并两个有序的数组
主要是体验一下牛客网里的核心代码模式到底是怎么弄的..还有C++这个东西平常用的太少了,试一试. 以外的还体验到了sort()函数的使用. 来源:牛客网 题目链接:合并两个有序的数组 知识点:数组.双 ...
- 字节跳动java笔试题目_牛客网--字节跳动面试题--特征提取
牛客网--字节跳动面试题--特征提取 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 来源 链接:特征提取 来源:牛客网 题目 ...
- 牛客网:为什么不能将实数作为 HashMap 的 key?
欢迎关注方志朋的博客,回复"666"获面试宝典 1.起因 让我关注到这一点的起因是一道题:牛客网上的max-points-on-a-line 题目是这么描述的: Given n p ...
- 牛客网在线编程----算法入门篇
标题本篇博文主要是记录下自己的在线编程情况,初次练习,有的算法还待改进,大家有需要可以去牛客网上面多练练! 有需戳–>牛客网在线编程 NC65.题目描述 大家都知道斐波那契数列,现在要求输入一个 ...
- 牛客网数据开发题库_练习SQL利器,牛客网SQL实战题库
牛客网SQL实战网址:https://www.nowcoder.com/ta/sql 持续更新--记录自己在牛客网SQL的做题过程 更新进度:61题,2019-4-3,更完了 1.查找最晚入职员工的所 ...
- 牛客网 Wannafly挑战赛8 A.小Y和小B睡觉觉
写了一会不想写了... A-小Y和小B睡觉觉 链接:https://www.nowcoder.com/acm/contest/57/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制 ...
- 牛客网 2018年全国多校算法寒假训练营练习比赛(第三场)D.小牛vs小客-博弈
菜哭... D.小牛vs小客 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 链接:https://ww ...
- 牛客网——求平均年龄(水题)
题目描述 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位. 输入描述: 第一行有一个整数n(1<= n <= 100),表示学生的人数.其后n行 ...
- 牛客网平台常州大学新生寒假训练会试
A-添加逗号 链接:https://www.nowcoder.net/acm/contest/78/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其 ...
最新文章
- 六年磨一剑,全时发布音视频会议平台TANG,多款新品亮相
- shell脚本判断进程是否运行
- 绝地求生服务器延迟高低排序,绝地求生:延迟不可怕,大神教你如何高ping吃鸡!...
- 高并发MPP查询引擎Impala初识
- CSP认证201609-4	交通规划[C++题解]:最短路径树、dijkstra求单源最短路、递推思想
- 十进制数与八进制数互相转换(MATLAB和C版本)
- 归纳一下:C#线程同步的几种方法
- Linux服务器--CentOS7上实现LAMP(PhpMyAdmin,WordPress,Discuz)
- 视音频格式基础知识视频压缩
- 前台向后台传递汉字参数时遭遇的问题
- oracle日期类型格式转换,Oracle日期类型转换格式
- 完美解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
- java基础杂谈(二)
- python监听鼠标键盘_python用pynput监听控制键盘鼠标
- 学习笔记-基于全局和局部对比自监督学习的高分辨率遥感图像语义分割-day1
- 第九讲:因子分析(Factor analysis)
- mdb实时同步mysql_Mysql的实时同步 - 双机互备
- 魔方世界服务器文件,魔方世界服务器补丁
- 摩拜单车的“黑科技”
- Windows 8 下载
热门文章
- Oracle 压缩表与压缩表空间
- 淘宝/天猫按分类搜索淘宝直播接口 API 返回值说明
- 在线教育,网校平台,线上平台,线上教育的一些个人理解!
- Linux网卡模块,裁剪Linux并实现网卡模块的安装(附有命令移植的脚本)
- 选计算机硬盘原则和注意事项,旧电脑升级是升内存还是SSD?按照这个原则就对了!...
- Leetcode1859:将句子排序
- 男孩子学医好还是学计算机好,男孩子学医选什么专业好 最有前景的医学类专业...
- pytorch的cuda环境搭建(GPU版本安装)
- (三)shp路网数据导入postgres中
- 实时语音场景下的智能对话