Minimum Adjacent Swaps to Reach the Kth Smallest Number LeetCode solution in Python
1# Runtime: 1243 ms (Top 52.9%) | Memory: 16.52 MB (Top 32.4%)234class Solution:5def getMinSwaps(self, num: str, k: int) -> int:6num = list(num)7orig = num.copy()89for _ in range(k):10for i in reversed(range(len(num) - 1)):11if num[i] < num[i + 1]:12ii = i + 113while ii < len(num) and num[i] < num[ii]:14ii += 115num[i], num[ii - 1] = num[ii - 1], num[i]16lo, hi = i + 1, len(num) - 117while lo < hi:18num[lo], num[hi] = num[hi], num[lo]19lo += 120hi -= 121break2223ans = 024for i in range(len(num)):25ii = i26while orig[i] != num[i]:27ans += 128ii += 129num[i], num[ii] = num[ii], num[i]30return ans