Posts pythonTip 20 信息加密
Post
Cancel

pythonTip 20 信息加密

题目描述:

给你个小写英文字符串a和一个非负数b(0<=b<26), 将a中的每个小写字符替换成字母表中比它大b的字母。这里将字母表的z和a相连,如果超过了z就回到了a。

例如a=”cagy”, b=3,

则输出 :fdjb

分析

这种题目有种感觉,字符串成环的味道。 一般而言可以使用取余的方式。
但是自从我不知道从哪里学到 把两个相同串首位相连,然后直接加上 偏移量就可以了。省得取余数。 所以搞得我现在,每次遇到这种题目,我就拼接一次。

nums = [chr(97+i) for i in range(26)]
nums += [chr(97+i) for i in range(26)]

res = ""

for c_a in a:
    i_a = ord(c_a) - 97 + b
    res += nums[i_a]

print(res)

取余数的办法,我也放在下面。

nums = [chr(97+i) for i in range(26)]
res = ""

for c_a in a:
    i_a = ord(c_a) - 97 + b
    res += nums[i_a%26]
print(res)
This post is licensed under CC BY 4.0 by the author.
Trending Tags
Contents

pythonTip 19 单身情歌

pythonTip 21 回文子串

Trending Tags