华为OD机试 JavaScript 实现【简单密码】【牛客练习题 HJ21】,附详细解题思路

news/2024/10/18 6:03:57/

在这里插入图片描述

一、题目描述

现在有一种密码变换算法。
九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9。

而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
数字和其它的符号都不做变换。

数据范围: 输入的字符串长度满足 1≤n≤100

二、输入描述

输入一组密码,长度不超过100个字符。

三、输出描述

输出密码变换后的字符串。

四、解题思路

  1. 读取输入的密码字符串;
  2. 创建一个字符数组 a,用于存储九键手机键盘上数字与字母的对应关系;
  3. 创建一个 StringBuilder 对象 sb,用于存储转换后的密码字符串;
  4. 遍历输入的密码字符串,对每个字符进行如下操作:
    • 如果字符是大写字母(A 到 Z),将其转换为小写字母,并往后移一位;如果移动后的字符超出小写字母范围,则循环回到 a;
    • 如果字符是小写字母(a 到 z),根据九键手机键盘上的对应关系将其转换为相应的数字;
    • 其他情况下,字符保持不变;
  5. 将转换后的字符添加到 sb 中;
  6. 输出 sb 中存储的转换后的密码字符串;

五、JavaScript算法源码

function calculate(password) {// 用于存储九键手机键盘上数字与字母的对应关系const a = ["2", "2", "2", "3", "3", "3", "4", "4", "4", "5", "5", "5","6", "6", "6", "7", "7", "7", "7", "8", "8", "8", "9", "9", "9", "9"];let transformedPassword = "";// 遍历输入的密码字符串for (let i = 0; i < password.length; i++) {let c = password[i];// 如果字符是大写字母(A 到 Z),将其转换为小写字母,并往后移一位;if (c >= "A" && c <= "Z") {c = String.fromCharCode(c.charCodeAt(0) + 32 + 1);if (c > "z") {c = String.fromCharCode(c.charCodeAt(0) - 26);}// 如果字符是小写字母(a 到 z),根据九键手机键盘上的对应关系将其转换为相应的数字} else if (c >= "a" && c <= "z") {c = a[c.charCodeAt(0) - "a".charCodeAt(0)];}transformedPassword += c;}return transformedPassword;
}

六、效果展示

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

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

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.ppmy.cn/news/327754.html

相关文章

oracle 慢sql查询语句

select * from (select sa.SQL_TEXT, sa.SQL_FULLTEXT, sa.EXECUTIONS “执行次数”, round(sa.ELAPSED_TIME / 1000000, 2) “总执行时间”, round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2) “平均执行时间”, sa.COMMAND_TYPE, sa.last_load_time, sa.PARSING_USER_I…

MySQL:主从HASH SCAN算法可能导致从库数据错误

本文主要以hash scan全表为基础进行分析&#xff0c;而不涉及到hash scan索引&#xff0c;实际上都会遇到这个问题。本文主要描述的是update event&#xff0c;delete event也是一样的&#xff0c;测试包含8022&#xff0c;8026&#xff0c;8028均包含这个问题。 约定&#xff…

Updating P300: An Integrative Theory of P3a and P3b

文献信息&#xff1a;Polich, J. (2007). "Updating P300: an integrative theory of P3a and P3b." Clin Neurophysiol 118 (10): 2128-48.

谷粒商城p300

p300 支付宝沙箱 沙箱模拟真实环境 p301 支付 RSA 加密 加签 密钥等 p311 秒杀服务 定时任务 cron表达式 p312 springboot整合定时任务 p313 秒杀服务-时间日期处理

ERP-P300

ERP:事件相关电位 P300:事件相关刺激300-400ms出现正电位。主 要位于中央皮层区域, 其峰值大约出现在事件发生后 300 ms。 相关事件发生的概率越小所引起的P300越显著。 基于P300的BCI的优点是P30属于内部响应&#xff0c;使用者无需通过训练就可产生P300 事件相关电位或去同…

bnci-horizon-2020.eu P300数据 eeglab处理(1)

1. 数据下载 Data sets - BNCI Horizon 2020 (bnci-horizon-2020.eu) 1.1 P300数据详情 BNCI_CenterSpeller.pdf (tu-berlin.de) 1.2 Matlab 打开数据和导出数据 data二维&#xff0c;无法直接导入eeglab。我们先处理一下。 1.2.1 data导出 Copy X P1data data{1, 1}.X;…

P300数据集

P300脑电数据的制作 在基于P300的oddball刺激范式 BCI 系统研究中&#xff0c;最经典的应用是Farwell和Donchin在 1988年提出并设计的字符拼写器简称为P300 Speller。如下图所示&#xff0c;使用26个英文字母和 1-9个数字以及下划线排列成 6 x 6 的虚拟键盘矩阵。随机高亮字符…

谷粒商城-12-p300-p338

300、商城业务-支付-支付宝沙箱&代码 1、进入“蚂蚁金服开放平台” https://open.alipay.com/platform/home.htm 2、下载支付宝官方demo&#xff0c;进行配置和测试 文档地址 https://open.alipay.com/platform/home.htm 支付宝&蚂蚁金服开发者平台 https://docs.o…