不要想移动的次数,用五个变量做标记,这样简单些。这题考逻辑的。

while True:
    try:
        num1 = int(input())
        str1 = str(input())

        def ktimes(num,str2):
            k = 1
            for i in range(len(str2)):
                if(str2[i] == 'U'):
                    if(k == 1):
                        k = num
                    else:
                        k -= 1
                elif(str2[i] == 'D'):
                    if(k == num):
                        k = 1
                    else:
                        k += 1
            return k

        if(num1 <= 4):
            k = ktimes(num1,str1)
            for i in range(1,num1+1):
                if(i != num1):
                    print(i,end=' ')
                else:
                    print(i)
            print(k)
        elif(num1 > 4):
            k, k1, k2, k3, k4 = 1,1,2,3,4
            for i in range(len(str1)):
                if(str1[i] == 'U'):
                    if(k == k1):
                        if(k1 == 1):
                            k = num1
                            k1, k2, k3, k4 = num1-3, num1-2, num1-1, num1
                        else:
                            k -= 1
                            k1 -= 1
                            k2 -= 1
                            k3 -= 1
                            k4 -= 1
                    else:
                        k -= 1
                if(str1[i] == 'D'):
                    if(k == k4):
                        if(k4 == num1):
                            k, k1, k2, k3, k4 = 1,1,2,3,4
                        else:
                            k += 1
                            k1 += 1
                            k2 += 1
                            k3 += 1
                            k4 += 1
                    else:
                        k += 1
            print(k1,k2,k3,k4)
            print(k)
    except:
        break