编辑代码

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main () {
    char s[100010];
    scanf("%s",s);
    int len=strlen(s);

    int cnt[26]={0}; //计算串内每个字母的数量
    for(int i=0;i<len;i++){
        cnt[ s[i]-'a' ]++;
    }

    //极大值最小操作次数
    int min_sum = 100010;
    for(int target=0;target<26;target++){ //遍历移动到每个字母次数
        int total=0;
        for(int c=0;c<26;c++){ //当前字母
            if(cnt[c]==0){
                continue;
            }
            int diff = abs(target - c);
            int min = (diff>(26-diff))?(26-diff):diff;
            total += min * cnt[c];
        }

        if(total<min_sum){
            min_sum = total;
        }
    }
    printf("%d",min_sum);




}