HW.MP3 cursor position

Here Insert Picture Description
Here Insert Picture Description

while True:
    try:
        """
        双指针问题
        """
        def location(loc,total):
            #重定位,省去了mod操作
            if loc == 0:
                return total
            if loc == total+1:
                return 1
            return loc

        # 注意这里初始值,可能歌数小于4
        total = int(input())
        left, right, cur = 1,min(total,4),1
        button = input()
        for dierction in button:
            if dierction == "U":
                cur =  location(cur-1,total)
                #表示从1反转到10
                if cur > right:
                    left, right = max(1,total-3), total
                else:
                    # 表示向左移动了一位且没翻转
                    # 更新左右指针
                    left = min(left, cur)
                    right =  min(left+3, right)
            else:
                cur = location(cur+1,total)
                #表示从10反转到1,页面更新
                if cur < left:
                    left, right = 1, min(4,total)
                else:
                    #表示向右移动了一位且没有反转
                    right = max(right, cur)
                    left = max(right-3, left)
        page = [str(i) for i in range(left, right+1)]
        print(" ".join(page))
        print(str(cur))
    except:
        break

Guess you like

Origin blog.csdn.net/dpengwang/article/details/93227431