简单习题python心得| 豆包MarsCode AI 刷题

75 阅读2分钟

- 小T的密码转换规则

问题描述

小T设计了一套密码变换规则,将输入的字符串转换成一串数字密码。变换规则如下:

  1. 小写字母按以下映射关系进行转换:
  • a, b, c -> 2
  • d, e, f -> 3
  • g, h, i -> 4
  • j, k, l -> 5
  • m, n, o -> 6
  • p, q, r, s -> 7
  • t, u, v -> 8
  • w, x, y, z -> 9
  1. 大写字母先转为小写字母,再跳到字母表中的前一个字母,并按上述规则转换为对应的数字。例如,B 转换为 a,再转换为 2A 特殊处理,先变为 Z,再转换为 9
  2. 非字母字符保持不变。

例如:对于输入字符串 "LIming0701",转换后的数字密码为 5464640701

测试样例

样例1:

输入:s = "LIming0701"
输出:'5464640701'

样例2:

输入:s = "PassW0rd"
输出:'62778073'

样例3:

输入:s = "helloWORLD123"
输出:'4355686752123'

分析题目

根据问题描述和测试样例可以发现:

1.需要将对应的字母转换成数字。

2.需要对大写的字母小写化并且减一即可完成任务。

3.如果是A的话需要特殊处理转化为z

解析步骤

1.建立字典使其字母和密码与之对应转换。

2.大写字母转化为ASCII编码减一操作再跳转1中字典即可。

3.创建空字符串接受转化的密码值。

4.通过遍历每一个字符串进行一一对应,嵌套两层if语句使其判断是否为大小写,是否需要转化ASCII编码,是否为A值。

5.最终将所遍历的结果加到先前创立的空字符串(3)中,即可获取答案.

最终代码

image.png

代码解释

首先创立字典进行键值对转化密码

初始化结果字符串

遍历循环输入的字符串的每个字符

通过if判断是否为小写字母如果是小写直接通过字典进行转换密码,如果并非小写,再次if判断是否为A进行转换为z再通过字典进行转化,如果是其他大写字母就转化为ASCII减一进行操作 最终赋值给初始化字符串

结果体现

image.png

运用到的知识点

1.创建字典

2.遍历字符串

3.通过python内置语法判断是否为大小写字母

4.通过转化为ASCII码进行跳转前一个字母