当前位置: 首页 > news >正文

济南标场馆建设有新进展seo在线教程

济南标场馆建设有新进展,seo在线教程,html5高端网站建设织梦模板,做仿网站的书目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷&#…

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

九宫格按键输入,输出显示内容,有英文和数字两个模式,默认是数字模式,数字模式直接输出数字,英文模式连续按同一个按键会依次出现这个按键上的字母,如果输入" "或者其他字符,则循环中断。

字符对应关系如图:

在这里插入图片描述

二、输入描述

输入范围为数字0~9和字符#、/,输出屏幕显示,例如在数字模式下,输入1234,显示1234;在英文模式下,输入1234,显示,adg。

三、输出描述

#用于切换模式,默认是数字模式,执行#后切换为英文模式, /表示延迟,例如在英文模式下,输入22/222,显示为bc;

英文模式下,多次按同一键,例如输入22222,显示为b;

输入输出说明
123#222235/56123adjjm

四、解题思路

  1. 输入一个字符串input;
  2. 定义digitalMode,true表示数字模式,false表示英文模式,默认true;
  3. 定义变量right,表示英文模式下,连续按键模式停止的坐标;
  4. 定义builder,拼接最后的输出内容;
  5. 遍历input;
    • 如果输入" "或者其他字符,则循环中断;
    • 如果是#,切换模式;
    • 如果是/,表示延迟;
    • 如果是数字模式,直接拼接;
    • 如果是英文模式,获取下一个字符,判断与上一个字符是否相等;
      • 如果下一个字符和当前字符相等,则进入连续按键模式;
      • 如果下一个字符和当前字符相等,则表示连续模式结束,开始计算连续按键后输出的字母;
      • 计算连续按键后输出的字母;
      • 如果输入" "或者其他字符,则循环中断;
      • 计算连续按键后输出的字母完毕,开始遍历后面的字符;
  6. 输出最后的拼接字符串builder。

五、Java算法源码

public class OdTest04 {/*** #用于切换模式,默认是数字模式,执行#后切换为英文模式, /表示延迟* 如果输入" "或者其他字符,则循环中断。* 123#222235/56  --->  123adjjm* 123#2222#3#5//5556  --->  123a3jlm* 123#2222#3#50//5556  --->  123a3j* 123#22022#3#5//5556  --->  123b*/// 合法字符,如果输入" "或者其他字符,则循环中断static String effectiveLetter = "123456789#/";public static void main(String[] args) {Scanner sc = new Scanner(System.in);String input = sc.nextLine();// true表示数字模式,false表示英文模式,默认trueboolean digitalMode = true;// 英文模式下,连续按键模式停止的坐标int right = -1;// 最后的输出内容StringBuilder builder = new StringBuilder();for (int i = 0; i < input.length(); i++) {// 123#222235/56   i = 4,  3对应8,此时right=7,,,下次遍历从8开始if (right >= i) {continue;}char ch = input.charAt(i);// 如果输入" "或者其他字符,则循环中断if (!effectiveLetter.contains(ch + "")) {break;}switch (ch){case '#': // 切换模式digitalMode = !digitalMode;break;case '/': // /表示延迟break;default:// 数字模式if (digitalMode) {builder.append(ch);}else{ // 英文模式int sameCount = 1;boolean inputError = false;for (int j = i + 1; j < input.length(); j++) {// 下一个字符,判断与上一个字符是否相等char next = input.charAt(j);// 如果输入" "或者其他字符,则循环中断if (!effectiveLetter.contains(next + "")) {inputError = true;break;}// 表示延迟if (next == '/') {right = j;break;}// 如果下一个字符和当前字符相等,则进入连续按键模式if (ch == next) {// 123#222235/56   i = 4,  3对应8,此时right=7,,,下次遍历从8开始sameCount++;right = j;continue;} else {// 如果下一个字符和当前字符相等,则表示连续模式结束,开始计算连续按键后输出的字母break;}}// 计算连续按键后输出的字母char letter = getLetter(ch, sameCount);builder.append(letter);// 如果输入" "或者其他字符,则循环中断if (inputError) {break;} else {// 计算连续按键后输出的字母完毕,开始遍历后面的字符continue;}}break;}}// 最后的输出内容System.out.println(builder);}/*** 根据按键和连续的次数,获取对应的字母** @param ch        按键* @param sameCount 连续的次数*/static final String[] mapArr = {" ",",.?!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};private static char getLetter(char ch, int sameCount) {String letter = mapArr[Integer.parseInt(String.valueOf(ch))];int index = (sameCount - 1) % letter.length();return letter.charAt(index);}
}

六、效果展示

1、输入

123#2222#3#5//5556

2、输出

123a3jlm

3、说明

  1. 遍历字符串123#2222#3#5//5556;
  2. #表示切换模式,/表示延迟;
  3. 123 --> 123;
  4. #切换到英文模式;
  5. 2222 --> a;
  6. #再次切换数字模式,3 --> 3;
  7. #再次切换英文模式,5 --> j;555 --> l;
  8. 6 --> m;
  9. 最后输出123a3jlm

在这里插入图片描述


🏆下一篇:华为OD机试 - 最长的顺子 - 感谢@禁止你发言提供的更简便算法(Java 2023 B卷 200分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

http://www.dt0577.cn/news/16212.html

相关文章:

  • 电子商务网站建设如何策划与实施seo专业论坛
  • 做筹款的网站需要什么资质产品网络营销
  • 做关键字要改网站什么是关键词
  • 做网站这么做郑州网站营销推广公司
  • 登陆国外的网站要这么做重庆公司网站seo
  • 网站怎么做文字禁止复制信阳网站seo
  • 给小学生做家教的网站西安网站seo外包
  • 阿里巴巴做网站的关键词排名点击软件首页
  • 自助建站的优点与缺点上海市人大常委会
  • 国外做网站页面seo优化
  • windows部署网站php外贸接单平台网站
  • 买衣服网站排行榜前十名百度推广二级代理商
  • 烟台外贸网站建设公司怎么百度推广
  • 怎么做网站省钱推广赚钱软件排行
  • php 购物网站开发免费发布推广的网站有哪些
  • php英文商城网站建设湖南正规关键词优化首选
  • 大连 找人做网站推广普通话标语
  • 做网站的原理指定关键词排名优化
  • 济南网站制作企业营销方案
  • 建设展示类网站的意义遵义网站seo
  • 网站建设合同图表版有了域名如何建立网站
  • 怎么让别人访问自己做的的网站建网站有哪些步骤
  • 共同建设网站协议代理怎么引流推广
  • 武汉app网站建设东莞seo优化seo关键词
  • 北京做网站那家好yahoo搜索
  • 温州做网店的网站创建一个网站需要什么
  • 网站的概念个人网站设计作品
  • 时网站建设公司管理苏州seo关键词优化排名
  • 购物网站开发设计类图灰色关键词排名
  • 做网站后面维护要收钱吗aso优化前景