Advertisement
cirossmonteiro

transpositions

Jul 18th, 2022
819
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.69 KB | None | 0 0
  1. def compute_transpositions(start: list, end: list):
  2.     transpositions = []
  3.     size, start = len(start), start[:]
  4.     for pivot in range(size-1): # when list has only one item left, then it's already over
  5.         index = start.index(end[pivot])
  6.         if pivot != index:
  7.             transpositions.append((pivot, index))
  8.             temp = start[pivot]
  9.             start[pivot] = start[index]
  10.             start[index] = temp
  11.    
  12.     return transpositions
  13.  
  14. def apply_transpositions(start: list, transpositions: typing.List[typing.Tuple[int, int]]):
  15.     for tp in transpositions:
  16.         temp = start[tp[0]]
  17.         start[tp[0]] = start[tp[1]]
  18.         start[tp[1]] = temp
  19.  
  20.     return start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement