""" 反转字幕 给定一个字符串,根据下述规则反转字符串 1.所有非英文字母保留在原有位置。 2.所有英文字母(小写或大写)位置反转。 返回反转后的字符串。 """ def reverse_letters(s): """ 反转字符串s中的字母部分,保持非字母字符的位置不变。 参数: s (str): 输入的字符串。 返回: str: 反转后的字符串。 """ # 将字符串转换为列表,以便进行元素交换 result = list(s) # 初始化左右指针 left = 0 right = len(result) - 1 # 使用循环进行字母部分的反转 while True: # 移动左指针,跳过非字母字符 while left < right and not result[left].isalpha(): left += 1 # 移动右指针,跳过非字母字符 while left < right and not result[right].isalpha(): right -= 1 # 如果左指针大于等于右指针,说明已经完成反转,退出循环 if left >= right: break # 交换左右指针指向的字母 result[left], result[right] = result[right], result[left] # 左指针右移,右指针左移,继续下一轮反转 left += 1 right -= 1 # 将列表转换回字符串并返回 return ''.join(result) if __name__ == '__main__': s = "a-bC-dEf-ghIj" print(reverse_letters(s))
评论前必须登录!
注册