思路:一开始想得太复杂,后面看大佬们的思路,其实只需要每次把前面比当前小的的加上,然后更新即可。
class Solution {
public:
int turn(string s, int k) {
int n=s.size();
int sum=0;
int vis[26];
for(int i=0;i<k&&i<n;i++){
memset(vis,0,sizeof(vis));
for(int temp=i;temp<n;temp+=k){
for(int j=0;j<s[temp]-'a';j++){
sum+=vis[j];
}
vis[s[temp]-'a']++;
}
}
return sum;
}
};