24 求教代码中标注为红色字体的意思,看不懂,谢谢!

本帖最后由 旭日 于 2021-4-20 08:48 编辑

class Solution:
    def rotateString(self, s, offset):

        if len(s) > 0:
            offset = offset % len(s)
        temp = (s + s)[len(s) - offset:2 * len(s) - offset]
        for i in range(len(temp)):
            s = temp


if __name__ == '__main__':
    s = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    offset = 3
    solution = Solution()
    solution.rotateString(s, offset)
    print("输入:s = ", ['a', 'b', 'c', 'd', 'e', 'f', 'g'], ' ', 'offset = ', offset)
    print('输出:s =', s)


请先 登录 后评论

最佳答案 2021-09-23 23:16

这个代码是实现将数组做一个循环右移,将数组的最后offset个数依次取出并放在数组的第一个位置:
for index in range(offset):
    last = s.pop()
    s.insert(0, last)
请先 登录 后评论

其它 2 个回答

帅哥淦
s+s=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'c', 'd', 'e', 'f', 'g']
temp = (s + s)[len(s) - offset:2 * len(s) - offset]#取出temp列表中第4到第11个元素
temp = (s + s)[4:11]=['e', 'f', 'g', 'a', 'b', 'c', 'd']
请先 登录 后评论
李宗县
我复制到我的pycharm上面运行,并未看见红字,代码没问题
运行顺利
请先 登录 后评论
  • 3 关注
  • 0 收藏,91 浏览
  • 黄静丶 提出于 2021-09-23 23:16

相似问题