当前位置: 首页 > news >正文

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

目录

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

题目解析

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);
    }
}

相关文章:

  • StarRocks-fe工程在Cursor中不能识别为Java项目
  • Html5学习教程,从入门到精通,HTML `<div>` 和 `<span>` 标签:语法知识点与案例代码(12)
  • SpringBoot生成唯一ID的方式
  • leetcode 98. 验证二叉搜索树
  • Unity 对象池技术
  • TS的接口 泛型 自定义类型 在接口中定义一个非必须的属性
  • 【Pandas】pandas Series argsort
  • 《挑战你的控制力!开源小游戏“保持平衡”开发解析:用HTML+JS+CSS实现物理平衡挑战》​
  • 【nodeJS】服务端连接mysql、定义一个接口,并在前端调用
  • 浅谈DeepSeek使用技巧
  • SSL证书和HTTPS:全面解析它们的功能与重要性
  • Swift 常量
  • 浅色系可视化大屏看起来确实很漂亮,但用到的地方确实很少
  • Linux网络编程(20250301)
  • 三维重建(十五)——多尺度(coarse-to-fine)
  • 六足仿生机器人地形自适应步态规划研究
  • 【PyQt5项目实战分享】基于YOLOv8的车辆轨迹识别与目标检测研究分析软件
  • 一、Redis 基础入门:概述与应用场景
  • Hbase完全分布式安装教程,详细版
  • 字符串相加
  • 要建一个网站怎么做/百度惠生活怎么优化排名
  • vps网站被镜像/十大舆情网站
  • 人际网络网络营销是什么/班级优化大师电脑版
  • 电脑做网站教学/扫描图片找原图
  • 做网站找客户/网站排名英文
  • wordpress博客类主题/手机优化大师