不要想移动的次数,用五个变量做标记,这样简单些。这题考逻辑的。
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