题目来源 北邮OJ
注意“感叹号”处,需要取Abs和26-Abs的最小值!!!
#include<iostream>
#include<algorithm>
#include<cstring>
#include<limits.h>
#include<cmath>
using namespace std;
/*Input:
2
abbba
abbac
*/
int main()
{
int T,Min,temp;
string str;
int a[26];
cin>>T;
while(T--){
cin>>str;
Min=INT_MAX;
memset(a,0,sizeof(a));
for(int i=0;i<str.length();i++){
a[str[i]-'a']++;
}
for(int i=0;i<26;i++){
temp=0;
if(a[i]!=0){
for(int j=0;j<26;j++){
int Abs=abs(i-j);
Abs=min(Abs,26-Abs);//!!!!!!!!!!!!!!
temp+=Abs*a[j];
}
if(temp<Min){
Min=temp;
}
}
}
cout<<Min<<endl;
}
}