文章目录
- 1. 问题描述
- 2. 问题示例
- 3.代码实现
- 4. 运行结果
- 总结
1. 问题描述
给定一个字符串(以字符数组的形式)和一个偏移量,根据偏移量原地从左向右旋转字符串
2. 问题示例
- 输入 str = “abcdefg”,offset = 3,输出"efgabcd"
- 输入 str = “abcdefg”,offset = 0,输出"abcdefg"
- 输入 str = “abcdefg”,offset = 8,输出"gabcdef"
3.代码实现
class Solution:# 参数s:字符列表# 参数offset:整数# 返回值:无def rotateString(self,s,offset):if len(s) > 0:offset = offset % len(s) # 防止offset大于字符串长度temp = (s+s)[len(s) - offset:2 * len(s) - offset] #关键一步for i in range(len(temp)):s[i] = temp[i]return s# 主函数
if __name__ == '__main__':str = input('请输入以空格为分割的字符串:').split() # 以空格分割转换为列表offset = int(input('请输入偏移量:'))print('输入str=',str,' ','offset=',offset)solution = Solution()str_result = solution.rotateString(str, offset)print('输出str=',str_result)
4. 运行结果
总结
本程序重点在于:
temp = (s+s)[len(s) - offset:2 * len(s) - offset]
等价于
temp = (s*2)[len(s) - offset:2 * len(s) - offset]