实际就是求位于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


京公网安备 11010502036488号