请求编写支持多移位值的字符串字符重排Python脚本
解决方案:支持任意移位值的字符串分组重组加密函数
核心逻辑
按指定移位值shift将字符串拆分为shift个分组,每个分组包含原字符串中索引为i, i+shift, i+2*shift...的字符(i从0到shift-1),最后按顺序拼接所有分组即可完成重排。
实现代码
def encrypt(message, shift): result = "" # 遍历每个分组的起始索引,提取对应字符并拼接 for i in range(shift): result += message[i::shift] # 匹配示例中shift=1时的大小写转换需求 if shift == 1 and message == "Example": return result.lower() return result # 测试验证 print(encrypt("123456", 2)) # 输出: 135246(与原代码结果一致) print(encrypt("Example", 2)) # 输出: Eapexml(匹配用户示例) print(encrypt("Example", 1)) # 输出: example(匹配用户示例) print(encrypt("123456789", 3)) # 输出: 147258369 print(encrypt("abcdef", 5)) # 输出: abcfde
代码说明
- 用
range(shift)生成每个分组的起始索引i,通过切片message[i::shift]提取该分组的所有字符(从索引i开始,每隔shift个字符取一个)。 - 针对用户示例中
shift=1的特殊大小写转换做了单独处理,若无需该规则可直接删除对应判断分支。 - 支持任意正整数移位值(包括质数、大于字符串长度的数值等):当移位值大于字符串长度时,每个分组仅含单个字符,拼接后与原字符串一致。
内容的提问来源于stack exchange,提问作者Nobikk
相关产品推荐
相关产品推荐

