编程题:电话号码

📑打牌 : da pai ge的个人主页

🌤️个人专栏 : da pai ge的博客专栏

☁️宝剑锋从磨砺出,梅花香自苦寒来

📑题目解析

这个题目比较简单 . 借助 hash 表完成字母和数字之间的转换即可 . 注意大小写的情况

🌤️解题思路

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

☁️代码解析

复制代码
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) throws Exception
{
//建立映射
//字母--->数字
HashMap<Character, Character> mp = new HashMap<>();
String alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String num = "22233344455566677778889999";
char[] alphaArr = alpha.toCharArray();
char[] numArr = num.toCharArray();
for(int i = 0; i < alphaArr.length; ++i)
{
mp.put(alphaArr[i], numArr[i]);
}
//用set保存结果,去重
TreeSet<String> set = new TreeSet<>();
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while((line = reader.readLine()) != null)
{
set.clear();

int n = Integer.parseInt(line);
//处理n个字符串
for(int i = 0; i < n; ++i)
{
line = reader.readLine();
//保存转换之后的字符串
StringBuilder sb = new StringBuilder();
char[] arr = line.toCharArray();
//处理每一个字符
for(char ch : arr)
{
if(isDigit(ch))
sb.append(ch);
else if(isUpper(ch))
sb.append(mp.get(ch));
}
//调整格式:xxx-xxxx
line = sb.substring(0, 3) + "-" + sb.substring(3);
//保存结果
set.add(line);
}
//打印转换之后的结果
for(String str : set)
System.out.println(str);
//每组数据用空行隔开
System.out.println();
}
}
public static boolean isDigit(char ch)
{
return '0' <= ch && ch <= '9';
}
public static boolean isUpper(char ch)
{
return 'A' <= ch && ch <= 'Z';
}
相关推荐
地平线开发者1 小时前
mul 与 reduce_sum 的优化实例
算法·自动驾驶
坚持编程的菜鸟1 小时前
LeetCode每日一题——Pow(x, n)
c语言·算法·leetcode
csdn_aspnet1 小时前
分享MATLAB在数据分析与科学计算中的高效算法案例
算法·matlab·数据分析
白云千载尽1 小时前
moveit使用和机器人模型与状态--正向运动学和逆向运动学分析(四)
算法·机器人·逆运动学·moveit·正向运动学
我想吃余1 小时前
【0基础学算法】前缀和刷题日志(三):连续数组、矩阵区域和
算法·矩阵·哈希算法
小王C语言2 小时前
哈希表实现
数据结构·哈希算法·散列表
2501_938773992 小时前
文档搜索引擎搜索模块迭代:从基础检索到智能语义匹配升级
人工智能·算法·搜索引擎
CS创新实验室2 小时前
典型算法题解:长度最小的子数组
数据结构·c++·算法·考研408
我有一些感想……2 小时前
浅谈 BSGS(Baby-Step Giant-Step 大步小步)算法
c++·算法·数论·离散对数·bsgs
麦麦大数据2 小时前
F042 A星算法课程推荐(A*算法) | 课程知识图谱|课程推荐vue+flask+neo4j B/S架构前后端分离|课程知识图谱构造
vue.js·算法·知识图谱·neo4j·a星算法·路径推荐·课程推荐