fork download
  1. import numpy as np
  2. board = [".....", ".d.i.", "kmegk", "..tu."] #eval(input())
  3. cmds = "LRRLLUDRRLRLRRURRRRLLLRULDUDULDLLRDULURULUDLDLUDDL" #eval(input())
  4. m = len(board)
  5. n = len(board[0])
  6. cmds = [a for a, b in zip(cmds, cmds[1:]) if (a in 'LR') != (b in 'LR')] + [cmds[-1]]
  7. for cmd in cmds[:2]:
  8. if cmd in 'DU':
  9. board = [''.join(row) for row in zip(*board)]
  10. if cmd in 'RD':
  11. board = [row[::-1] for row in board]
  12. board = [row.replace('.', '').ljust(n, '.') for row in board]
  13. if cmd in 'RD':
  14. board = [row[::-1] for row in board]
  15. if cmd in 'DU':
  16. board = [''.join(row) for row in zip(*board)]
  17. if len(cmds) <= 2:
  18. print(board)
  19. exit()
  20. board = [row.replace('.', '') for row in board]
  21. lr, ud = 'LU'
  22. if 'R' in cmds[:2]:
  23. board = [row[::-1] for row in board]
  24. lr = 'R'
  25. if 'D' in cmds[:2]:
  26. board = board[::-1]
  27. ud = 'D'
  28. board = [list(row.ljust(n, '.')) for row in board]
  29. board = np.array(board)
  30. lrw = board != '.'
  31. lrr = np.fliplr(board) != '.'
  32. udw = board.T != '.'
  33. udr = np.fliplr(board.T) != '.'
  34. for i,cmd in enumerate(cmds[2:]):
  35. if cmd in 'LR':
  36. if cmd != lr:
  37. board[lrw] = np.fliplr(board)[lrr]
  38. lr = cmd
  39. else:
  40. if cmd != ud:
  41. board.T[udw] = np.fliplr(board.T)[udr]
  42. ud = cmd
  43. board = [''.join(row) for row in board]
  44. if lr == 'R':
  45. board = [row[::-1] for row in board]
  46. if ud == 'D':
  47. board = board[::-1]
  48. print(board)
Success #stdin #stdout 0.13s 24680KB
stdin
Standard input is empty
stdout
['.....', '.....', 'gk...', 'km...', 'dietu']