手机版网站有必要吗,做游戏ppt下载网站,建网站多少钱一平方,手机免费制作app平台目录
牛客_游游的字母串_枚举
题目解析
C代码
Java代码 牛客_游游的字母串_枚举
游游的字母串
描述#xff1a;
对于一个小写字母而言#xff0c;游游可以通过一次操作把这个字母变成相邻的字母。a和b相邻#xff0c;b和c相邻#xff0c;以此类推。特殊的#xff0…目录
牛客_游游的字母串_枚举
题目解析
C代码
Java代码 牛客_游游的字母串_枚举
游游的字母串
描述
对于一个小写字母而言游游可以通过一次操作把这个字母变成相邻的字母。a和b相邻b和c相邻以此类推。特殊的a和z也是相邻的。可以认为小写字母的相邻规则为一个环。
游游拿到了一个仅包含小写字母的字符串她想知道使得所有字母都相等至少要多少次操作
输入描述 一个仅包含小写字母长度不超过100000的字符串。 输出描述 一个整数代表最小的操作次数。 题目解析 英文字母一共就26个因此可以直接暴力枚举以每个字母作为最后的转变字母。最后去最小值即可。
C代码
#include iostream
#include vector
using namespace std;int main()
{string str;cin str;int res 1e9;for(char ch a; ch z; ch){int cnt 0;for(auto e : str){cnt min(abs(e - ch), 26 - abs(e - ch));}res min(res, cnt);}cout res endl;return 0;
}
Java代码
import java.util.*;
public class Main
{public static void main(String[] args){Scanner in new Scanner(System.in);char[] s in.next().toCharArray();int ret (int)1e9;for(char ch a; ch z; ch){int sum 0;for(int i 0; i s.length; i){sum Math.min(Math.abs(s[i] - ch), 26 - Math.abs(s[i] - ch));}ret Math.min(ret, sum);}System.out.println(ret);}
}