输入
yab
输出
3
说明
第一次操作,把'y'变成'z',字符串变成了"zab"
第二次操作,把'b'变成'a',字符串变成了"zaa"
第三次操作,把'z'变成'a',字符串变成了"aaa"
解析:
数据量1e5,则枚举26个字母,求出最少操作即可。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
int n,res=0x3f3f3f3f;
string s;
int main(){
cin>>s;
for(int i=0;i<26;i++){
int cnt=0;
int ch=i;
for(int i=0;i<s.size();i++){
int t=s[i]-'a';
cnt+=min(abs(t-ch),abs(26-abs(t-ch)));
}
res=min(res,cnt);
}
cout<<res;
return 0;
}