def cnt(vec, m): # vec: 当前字母的所有位置列表 (vec存储了某一个字母出现在字符串中的位置) # m: 允许的最大交换次数 n = len(vec) # n 是这个字母在字符串中出现的次数 # 初始化一个二维dp数组,dp[i][j]表示从位置i到位置j所有字符排列成连续的最小交换代价 dp = [[0] * n for _ in range(n)] # 初始化相邻两个位置之间的交换代价。 # abs(vec[i + 1] - vec[i]) 是位置差,减1是为了计算需要的交换次数。 for i in range(n - 1): dp[i][i + 1] = abs(...