题目描述:
给你个小写英文字符串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)