电话号码转换 - 华为机试真题题解(Java)

考试平台: 时习知

分值: 200分(第二题)

考试时间: 两小时(共2题)

华为机试真题

题目描述

将电话号码转换,需要实现如下的中英文电话号码转换:

  • 输入的字符串中每个数字对应为中文数字中的英文单词,如Double表示两个数字相同。
  • 将输入的中文数字字符串转换为英文单词的电话号码。
  • 若输入不合法,则输出字符串ERROR

中英文数字,英文数字分别如下:

中文数字:Yi Er San Si Wu Liu Qi Ba Jiu Ling
英文数字:One Two Three Four Five Six Seven Eight Nine Zero

说明:

  1. 输入保证每个单词都是合法的英文数字单词/中文数字单词/Double;
  2. 合法的字符串长度不会太长,不会含空格;
  3. 若含Double:
    • 合法情况下:其后必须跟随英文数字单词,代表两个数字,如DoubleSix,代表SixSix;
    • 不合法情况下:其后跟随的不是英文数字单词,如DoubleLiu 或 DoubleDouble 都是非法的。

输入

一行仅由大小写字母组成的字符串,非空且长度不大于500。

输出

一个字符串,表示转换后的电话号码;若输入不合法,输出ERROR

示例1

输入:
SixOneThreeOneDoubleZero

输出:
LiuyiSanyilingLing

解释:
SixOneThreeOneDoubleZero 对应的转换结果为 LiuyiSanyilingLing

示例2

输入:
YiLingSanSanJiu

输出:
OneZeroThreeThreeNine

解释:
YiLingSanSanJiu 对应的转换结果为 OneZeroThreeThreeNine

示例3

输入:
DoubleLiu

输出:
ERROR

解释:
DoubleLiu 是非法输入

题解

该题目要求将输入的中英文数字字符串进行转换。如果输入字符串是中文数字单词,则将其转换为对应的英文数字单词;如果输入字符串是英文数字单词,则将其转换为对应的中文数字单词。此外,输入字符串中可能包含 Double,表示后面的数字出现两次。若 Double 后面不是合法的英文数字单词,则输入非法。

题目分析

  1. 输入字符串可能包含中文数字或英文数字单词,以及 Double
  2. 输入字符串需要逐个解析,处理 Double 情况时,需要特别小心,确保其后跟随的是合法的英文数字单词。
  3. 字符串解析时,需要不断检查当前单词是否为合法的数字单词。

解题思路

  1. 使用两个列表分别存储中文数字单词和英文数字单词,以便进行相互转换。
  2. 遍历输入字符串,逐个解析单词,判断其是否为合法的数字单词或 Double
  3. 如果遇到 Double,检查其后是否跟随合法的英文数字单词,如果不是,则输出 ERROR
  4. 根据当前单词类型(中文或英文),进行对应的转换。
  5. 最后输出转换后的字符串,若中途发现非法输入,则输出 ERROR

Java

import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = n

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

🔥笔试编程真题宝典💯 文章被收录于专栏

📕分享大厂机试真题深度剖析核心考点,助你速通面试。

全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
01-17 18:15
已编辑
门头沟学院 前端工程师
从上午约我面试然后他迟到,然后中午发消息打电话给我说重约面试时间,我就该意识到。【管理不规范,只是这家公司最小的问题】他妈一个不是技术的人来给我技术面。。。连vvue什么?连react是什么?连普通的HTTP请求是什么?这些东西都不懂的人来给我做技术面,我真的。。。。他妈浪费我40分钟。。一天面了三场,这家公司属实牛逼。不停的问我说上班下班时间谁来派任务公司在哪个区发展怎么样,公司的管理模式什么样,培养机制怎么样带教负责什么。如果出bug了谁来负责。我真的求你了别闹了。我答了15分钟,我已经很不想回答了。然后他就问了我一些很招笑的面试问题。问我前端框架架构设计怎么设计,Websocket可以实现SSE吗??最后还要我硬说,为什么我们公司没转正?为什么?为什么?我说我怎么知道。。这是领导决定,又不是我决定,他说让我分析一下。。。我真的草了,这个人是来搞我的吗?我最后问我说这个没有技术面,他说他就是技术面虽然我今天面的另外两家也很逆天。一个人不停的吹牛,自己100人的公司是全国前几,吹牛了一个小时。我中途几次想跑,真的是底下玩手机在听他那吹牛。。然后最后来了句说,我承诺的东西要实现哦,不然的话,公司会追责的,我我请问我承诺了什么?从头到尾也没有说让我承诺什么。而且我只是作为一个小小的前端卡拉咪,应届生。我要承担什么??好崩溃。。好崩溃的,一天面了三场。两家1000-9999的公司。面试官问的都很傻逼,甚至有些东西我问他估计都答不出来。。 我这是在干嘛呀?浪费我一天的时间,我的奶奶。。我本来是抱着说我很菜,我要面试中发现自己的问题,现在来看他妈的这三场面试,面试本身就是问题。。
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务