实际就是求位于i+nK的字符组成的数组按从大到小排序所需要的步骤(可以当成S为新数组,K=1的解,从左往右遍历,求出新数组中当前位置前面比当前数小的字符数量的和),再求和
分成的数组数量为K和N-K的最小值
# # # @param s string字符串 s.size() <= 1e5 # @param k int整型 k <= s.size() # @return int整型 # class Solution: def turn(self , s , k ): # write code here ans = 0 x = min(k, len(s)-k) for i in range(0, x): ns = s[i::k] d = [0 for _ in range(26)] for j in ns: d[ord(j)-97] += 1 for t in range(ord(j)-97): ans += d[t] return ans