#OD070. 九宫格按键输入

九宫格按键输入

题目解析和算法源码

华为OD机试 - 九宫格按键输入(Java & JS & Python & C & C++)_伏城之外的博客-CSDN博客

题目描述

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

数字和字母的对应关系如下,注意 0 只对应空格:

输入一串按键,要求输出屏幕显示

  • #用于切换模式,默认是数字模式,执行 # 后切换为英文模式;
  • /表示延迟,例如在英文模式下,输入 22/222,显示为 bc,数字模式下 / 没有效果;
  • 英文模式下,多次按同一键,例如输入 22222,显示为 b;

输入描述

输入范围为数字 0~9 和字符’#’、’/’,输出屏幕显示,例如:

  • 在数字模式下,输入 1234,显示 1234
  • 在英文模式下,输入 1234,显示,adg

输出描述

输出屏幕显示的字符

用例1

输入

2222/22

输出

222222

说明

默认数字模式,字符直接显示,数字模式下/无序

用例2

输入

#2222/22

输出

ab

说明

#进入英文模式,连续的数字输入会循环选择字母,直至输入/,故第一段2222输入显示a,第二段22输入显示b

用例3

输入

#222233

输出

ae

说明

#进入英文模式,连续的数字输入会循环选择字母,直至输入其他数字,故第一段2222输入显示a,第二段33输入显示e