每日OJ_牛客_游游的字母串_枚举_C++_Java

目录

牛客_游游的字母串_枚举

题目解析

C++代码

Java代码


牛客_游游的字母串_枚举

游游的字母串

描述:

对于一个小写字母而言,游游可以通过一次操作把这个字母变成相邻的字母。'a'和'b'相邻,'b'和'c'相邻,以此类推。特殊的,'a'和'z'也是相邻的。可以认为,小写字母的相邻规则为一个环。

游游拿到了一个仅包含小写字母的字符串,她想知道,使得所有字母都相等至少要多少次操作?

输入描述:

一个仅包含小写字母,长度不超过100000的字符串。

输出描述:

一个整数,代表最小的操作次数。


题目解析

英文字母一共就26个,因此可以直接暴力枚举以每个字母作为最后的转变字母。最后去最小值即可。

C++代码

cpp 复制代码
#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代码

cpp 复制代码
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);
    }
}
相关推荐
xcl09256 小时前
商超智能运营实战:数据驱动提升门店效率与体验指南
java·mfc·宠物
Flynt8 小时前
OpenJDK禁AI代码半年了,现在执行得怎么样?答案是:全靠自觉
java·开源·ai编程
程与留12 小时前
15_国际化和本地化:tr()、ts 文件、QM 文件、多语言切换
c++·qt
古法安卓13 小时前
Android-日志系统源码解析
android·java·android studio
地平线开发者13 小时前
【模型轻量化专题】衡量模型轻量性的指标
算法
程与留14 小时前
14_Qt 样式表(QSS)入门(语法、选择器、美化实战)
c++·qt
小夏coding14 小时前
从"一把梭"到"精妙拆解" —— 滑动窗口计时框架的设计演进
java·后端
MacroZheng15 小时前
同事问我:"Claude Code经常失忆,不怕它把项目搞炸?",我:"怕,三个Markdown文件给它装个永不丢失的外置大脑!"
java·人工智能·后端
学习星球16 小时前
OFDM技术精讲:正交性推导、循环前缀原理与80行Python链路仿真(附实测数据)
算法·面试·前端框架
十年Java程序媛16 小时前
深度实战:JDK21 虚拟线程 + HikariCP 生产正确配比、坑点、监控全套
java·spring boot