OJ1104. 【软件认证】电话号码转换

OJ1104. 【软件认证】电话号码转换

题目描述

某语音翻译软件,需要实现如下中英文电话号码转换功能:

若输入的是英文数字单词或Double组成的电话号码,则输出对应的中文数字单词;
若输入为中文数字单词组成的电话号码,则输出对应的英文数字单词。
若输入不合法,则输出字符串ERROR。
中文数字、英文数字分别见下表:
中文数字单词:Yi Er San Si Wu Liu Qi Ba Jiu Ling
英文数字单词:One Two Three Four Five Six Seven Eight Nine Zero

说明:

输入保证每个单词都是合法的英文数字单词/中文数字单词/Double;
合法的电话号码要么全中文,不会含 Double ;要么全英文,可能含 Double;
若含 Double:
合法格式:其后必须跟随英文数字单词,代表两个该数字。如输入DoubleSix,代表 SixSix;
不合法的格式:其后跟随的不是英文数字单词,如 DoubleLiu 或 DoubleDouble 都是非法的。
解答要求
时间限制:1000ms, 内存限制:256MB
输入
一行仅由大小写字母组成的字符串,非空且长度不大于500

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

样例
输入样例 1 复制

SixOneThreeOneDoubleZero
输出样例 1

LiuYiSanYiLingLing
提示样例 1

输入样例 2 复制

YiLingSanSanJiu
输出样例 2

OneZeroThreeThreeNine
提示样例 2
注意:SanSan不能转换为 DoubleThree

输入样例 3 复制

DoubleLiu
输出样例 3

ERROR
提示样例 3

/** Copyright (c) Huawei Technologies Co., Ltd. 2024-2024. All rights reserved. ok* */package ahwoj;import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;public class PhoneTrans1104 {private static String translate(String inputStr) {List<String> en = Arrays.asList(new String[]{"One","Two","Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Zero", "Double"});List<String> cn = Arrays.asList(new String[]{"Yi", "Er", "San", "Si", "Wu", "Liu", "Qi", "Ba", "Jiu", "Ling"});List<String> list = new ArrayList<>();List<String> res = new ArrayList<>();int n = 0;// 按大写字母分割,将输入字符串分割成单词列表for (int i = 1; i < inputStr.length(); i++) {if (Character.isUpperCase(inputStr.charAt(i))) {String s = inputStr.substring(n, i);list.add(s);n = i;}}list.add(inputStr.substring(n));// 如果最后一个单词为Double,ERRORif (list.get(list.size()-1).equals("Double")) {return "ERROR";}//判断特殊情况,是否合法if (!en.containsAll(list) && !cn.containsAll(list)) {return "ERROR";}// 分情况判断,英文可能又Doubleif (en.containsAll(list)) {for (int i = 0; i < list.size(); i++) {if (list.get(i).equals("Double")) {if (list.get(i+1).equals("Double")) {return "ERROR";} else {res.add(cn.get(en.indexOf(list.get(i+1))));}} else {res.add(cn.get(en.indexOf(list.get(i))));}}}// 中文if (cn.containsAll(list)) {for (int i = 0; i < list.size(); i++) {res.add(en.get(cn.indexOf(list.get(i))));}}StringBuilder sb = new StringBuilder();for (String tmp: res) {sb.append(tmp);}return sb.toString();}public static void main(String[] args) {Scanner cin = new Scanner(System.in, StandardCharsets.UTF_8.name());String inputStr = cin.nextLine();cin.close();String result = translate(inputStr);System.out.println(result);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/698649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shell变量类型和运算符

一、Shell变量类型 1、变量类型 Shell的3种变量&#xff1a; &#xff08;1&#xff09;局部变量&#xff1a;除了本地变量外&#xff0c;还有shell脚本中定义的变量。 &#xff08;2&#xff09;全局变量&#xff1a;和局部变量相对。比如环境变量就是一种全局变量。 &am…

算法训练营day33(补),复习二叉树1

// 889. 根据前序和后序遍历构造二叉树 // 前序中左右 后序遍历左右中 func constructFromPrePost(preorder []int, postorder []int) *TreeNode { if len(preorder) 0 { return nil } root : &TreeNode{} root.Val preorder[0] //前序数组去掉root节点 preorder pre…

餐饮神秘顾客公司:关于餐饮行业神秘顾客调查注意事项

在餐饮业&#xff0c;顾客体验往往决定品牌的成败。为深入了解顾客需求和感受&#xff0c;许多餐饮企业引入“神秘顾客”调查。然而&#xff0c;此调查并非简单走过场&#xff0c;其中细节和注意事项颇多。餐饮行业神秘顾客调查需注意以下几点&#xff1a; 1. 专业培训&#x…

MaxScale实现mysql8读写分离

MaxScale 实验环境 中间件192.168.150.24MaxScale 22.08.4主服务器192.168.150.21mysql 8.0.30从服务器192.168.150.22mysql 8.0.30从服务器192.168.150.23mysql 8.0.30 读写分离基于主从同步 1.先实现数据库主从同步 基于gtid的主从同步配置 主库配置 # tail -3 /etc/my.…

刷新多个SOTA!最新Mamba魔改版本超越transformer,GPU内存消耗减少74%

因模型规模的扩展和需要处理的序列不断变长&#xff0c;transformer逐渐出现计算量激增、计算效率下降等问题。为克服这些缺陷&#xff0c;研究者们提出了Mamba。 Mamba是一种创新的线性时间序列建模方法&#xff0c;它结合了递归神经网络&#xff08;RNN&#xff09;和卷积神…

[面试] InnoDB中如何解决幻读?

幻读是通过 MVCC 机制来解决的, MVCC 类似于一种乐观锁的机制&#xff0c;通过版本的方式来区分不同的并发事务&#xff0c;避免幻读 问题! 什么是幻读? 事务A前后两次读取同一个范围的数据&#xff0c;在事务A两次读取的过程之间&#xff0c;事务B新增了数据&#xff0c;导致…

星际修仙之剑胆琴心

剧名&#xff1a;《星际修仙之剑胆琴心》 类型&#xff1a;科幻修仙爱情剧 故事大纲&#xff1a; 在遥远的未来&#xff0c;人类文明已经发展到星际时代&#xff0c;科技与修仙相结合&#xff0c;形成了一种全新的文明形态。在这个时代&#xff0c;修仙者不再局限于传统的修炼方…

DR 或CT拍摄中的:平板、控制板、高压之间的关系

DR 或CT拍摄中的&#xff1a;平板、控制板、高压之间的关系 在DR&#xff08;Digital Radiography&#xff0c;数字放射摄影&#xff09;和CT&#xff08;Computed Tomography&#xff0c;计算机断层扫描&#xff09;拍摄过程中&#xff0c;平板探测器和平板控制板与高压发生器…

图文说明Linux云服务器如何更改实例镜像

一、应用场景举例 在学习Linux的vim时&#xff0c;我们难免要对vim进行一些配置&#xff0c;这里我们提供一个vim插件的安装包&#xff1a; curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o./install.sh && bash ./install.sh 但是此安装包…

跳槽前应该做好哪些准备?

第一次求职也好&#xff0c;还是换工作也罢&#xff0c;都需要有严谨的考虑。对于已经工作上班的朋友来说&#xff0c;切不可轻易地辞掉工作&#xff0c;想要跳槽&#xff0c;一定要三思而后行&#xff0c;有一个周密的部署。跳槽有好处&#xff0c;也有弊端&#xff0c;频繁的…

如何和将原始request的Header中的值传递给openfeign请求的Header? 以及又如何获取openfeign请求中Header中的值

如何和将原始request的Header中的值传递给openfeign请求的Header&#xff1f; 以及又如何获取openfeign请求中Header中的值 如何和将原始request的Header中的值传递给openfeign请求的Header参考 [https://www.jb51.net/article/282522.htm](https://www.jb51.net/article/28252…

【学网攻】 第(30)节 -- 综合实验三

系列文章目录 目录 系列文章目录 文章目录 前言 一、综合实验 二、实验 1.引入 实验目标 实验设备 实验拓扑图 实验配置 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4)节…

Python字典详细教程

Python字典&#xff08;Dictionary&#xff09;是一个无序的、可变的、包含键值对的数据结构&#xff0c;每个键&#xff08;key&#xff09;在字典中都是唯一的&#xff0c;可以用来索引其对应的值&#xff08;value&#xff09;。 一、创建字典 Python字典由键和对应值成对…

探讨导致vcruntime140_1.dll无法继续执行代码的原因和解决办法

在使用电脑过程中&#xff0c;我们偶尔会遇到一些令人不悦的错误提示&#xff0c;如"vcruntime140_1.dll丢失"。这个错误提示可能会给我们带来诸多困扰&#xff0c;阻碍我们正常地进行操作。本文将详细探讨导致"vcruntime140_1.dll丢失"错误的原因&#xf…

Java基于SSM+JSP的超市进销库存管理系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

如何区分恶意网络流量

笔记缘由&#xff1a;在看论文的过程中&#xff0c;论文中提到在某个数据集中&#xff0c;有多少条恶意流量和非恶意流量&#xff0c;突然想到一个问题就是这些恶意流量是如何被判刑为恶意流量的&#xff1f; 1. 基于已知的恶意行为 ​ 通过已知的恶意行为来识别恶意流量&…

singularity容器的技术基础

Singularity容器技术是专为科学计算、数据密集型工作和高性能计算&#xff08;HPC&#xff09;环境设计的。与其他容器技术如Docker相比&#xff0c;Singularity提供了一些独特的特性和设计考虑&#xff0c;使其在科学和研究社区中受到欢迎。以下是Singularity容器技术的一些关…

android pdf框架-4,分析vudroid源码2

继续分析源码 阅读器的入口 MainBrowserActivity,这个是主ui,由于代码较旧,所以没有处理sdcard的权限. 一般阅读器申请整个卡的读写. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {if (!Environment.isExternalStorageManager()) {Intent intent = new Intent…

开源图表库Echarts 简介与基本使用

ECharts 是一个使用 JavaScript 实现的开源可视化图表库&#xff0c;由百度团队开发。它提供了丰富的图表类型&#xff0c;如折线图、柱状图、饼图、地图、雷达图等&#xff0c;并且可以轻松地与其他前端框架和库集成。ECharts 的设计目的是为了满足复杂数据的可视化需求&#…

flutter开发实战-StreamBuilder使用介绍及实例

flutter开发实战-StreamBuilder使用介绍及实例 StreamBuilder是一个Widget&#xff0c;它依赖Stream来做异步数据获取刷新widget。 一、Stream Stream是一种用于异步处理数据流的机制&#xff0c;它允许我们从一段发射一个事件&#xff0c;从另外一段去监听事件的变化.Strea…