华为OD机试真题B卷 Java 实现【字符统计】,附详细解题思路

news2024/11/24 4:32:49

在这里插入图片描述

一、题目描述

输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出。

数据范围:字符串长度满足 1≤len(str)≤1000 。

二、输入描述

一个只包含小写英文字母和数字的字符串。

三、输出描述

一个字符串,为不同字母出现次数的降序表示。若出现次数相同,则按ASCII码的升序输出。

四、解题思路

  1. 从输入中读取字符串;
  2. 将字符串转换为字符数组;
  3. 创建一个大小为129的整型数组chArray,用于统计每个字符的出现次数;
  4. 遍历字符数组,对chArray中对应字符的ASCII码值下标元素进行自增操作,统计字符出现的次数;
  5. 找出chArray数组中的最大值max,即字符出现的最大次数;
  6. 创建一个可变字符序列StringBuilder对象sb,用于存储结果;
  7. 从最大次数开始,依次遍历chArray数组,将出现次数等于当前次数的字符添加到sb中;
  8. 递减最大次数,直到次数为0,完成排序;
  9. 返回StringBuilder对象sb作为结果;

五、Java算法源码

public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        try {
            while ((str = br.readLine()) != null) {
                System.out.println(count(str).toString());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static StringBuilder count(String str) {
        char[] strArray = str.toCharArray();
        int[] chArray = new int[129];

        //字符对应ascll码值下标元素自增来统计数量
        for (char i : strArray)
            chArray[(int) i]++;
        int max = 0;

        //找出字符数量最多的ascll码值
        for (int i = 0; i < chArray.length; i++)
            if (max < chArray[i])
                max = chArray[i];

        StringBuilder sb = new StringBuilder();
        //按数量从大到小添加到可变字符序列sb
        while (max != 0) {
            for (int i = 0; i < chArray.length; i++)
                if (chArray[i] == max)
                    sb.append((char) i);
            max--;
        }
        return sb;
    }

六、效果展示

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【基站维修工程师】【2023Q1 200分】,附详细解题思路

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图像算法工程师岗位的基本职责范围(合集)

图像算法工程师岗位的基本职责范围 图像算法工程师岗位的基本职责范围1 职责&#xff1a; 图像内容识别、图像纹理优化方面的算法基础研发; 三维模型内容识别、三维模型优化方面的算法研发; 遥感影像处理、内容理解方面的算法研发; 以上1,2,3方面的内容可选择某一项或者多项; 可…

CodeForces..翻转魔术.[简单].[找规律]

题目描述&#xff1a; 题目解读&#xff1a; 给定由0&#xff0c;1组成的长度为n的字符串&#xff0c;执行翻转操作&#xff0c;即0变1&#xff0c;1变0&#xff1b; 判断执行一次翻转之后是否为回文。 解题思路&#xff1a; 寻找规律&#xff1a;如果翻转前已经是回文&…

这里有一个源码调试方法,短小精悍,简单粗暴,但足够好用。

文章中有这样的一段描述&#xff1a; 然后有个读者来问我&#xff1a; 是怎么把 JDK 源码中的一行代码给注释掉的&#xff1f; 这个问题确实不错&#xff0c;属于一个偶尔用一下能起到奇效的源码调试技巧。所以我决定写个文章来说明一下这个问题。 但是这个技巧确实非常的简单…

VS输出路径和生成事件

在生成时&#xff0c;常常希望输出文件夹整洁&#xff0c;因此需要设置dll或exe输出位置&#xff0c;同时也希望对一些文件做一些特殊操作 VS的 UI 常用缩写 “./”&#xff1a;代表目前所在的目录。 " . ./"代表上一层目录。 “/”&#xff1a;代表根目录。 生成…

【图像分割】SAM:Segment Anything论文学习V1

论文:2304.Segment Anything 代码&#xff1a; https://github.com/facebookresearch/segment-anything 官网与demo&#xff1a;https://segment-anything.com/ 概要&#xff1a;SAM是什么&#xff1f; 是通用的分割模型 可以通过 模糊的点选择、文字输入、标注框对图片进行标…

Scala学习(十一)---集合高阶

文章目录 1.集合常用方法2.衍生集合3.集合的常用函数 1.集合常用方法 class Test_Func {} object Test_Func{def main(args: Array[String]): Unit {val list List(1, 2, 3, 4, 5)//定义一个List集合val set Set(6, 7, 8, 9)//定义一个Set集合//1.获取集合长度&#xff0c;…

Spring Boot如何与其他技术进行集成,如Spring Cloud、Spring Security、Spring Data等?

Spring Boot与其他技术集成 Spring Boot 是一个快速构建 Spring 应用程序的框架&#xff0c;它提供了自动配置和快速开发的特性&#xff0c;使得开发人员可以更加专注于业务逻辑的实现而不是搭建框架。Spring Boot 可以轻松集成其他 Spring 生态系统中的技术&#xff0c;例如 …

pnpm无法加载文件 (解决方法 )

例如&#xff1a;我现在要运行一个TS的项目&#xff0c;我的电脑上没有安装pnpm&#xff0c;导致我的vscode一直报错无法加载 Pnpm安装 npm install -g pnpm pnpm : 无法加载文件 pnpm : 无法加载文件 C:\Users\HP\AppData\Roaming\npm\pnpm.ps1&#xff0c;因为在此系统上禁…

微念“跌倒”,李子柒也吃不饱

文 | 螳螂观察 作者 | 青月 “共有从前&#xff0c;各有未来。” 杨幂官宣与嘉行传媒结束合作关系的微文&#xff0c;同样适用于现在的微念与李子柒。 李子柒与微念之间的这场MCN机构与网红IP之间由于利益分配的矛盾&#xff0c;经过500多天的博弈后&#xff0c;最终以李子柒…

2.6. Java内存管理与垃圾回收

2.6.1. Java内存模型 在Java中&#xff0c;内存被划分为以下几个区域&#xff1a; 堆&#xff08;Heap&#xff09;&#xff1a;存储对象实例和数组&#xff0c;是垃圾回收的主要区域。栈&#xff08;Stack&#xff09;&#xff1a;存储局部变量和方法调用。每个线程有自己的…

Python scapy二层、三层发送接收数据包

环境&#xff1a; Linux环境&#xff1a;安装scapy&#xff0c; 执行scapy 安装scapy yum install python3-pip (安装python3 pip) pip3 install --upgrade pip yum remove python-pip&#xff08;删除pip&#xff09; pip3 install scapy (安装scapy) 简介&#xff1a; …

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(5月29日论文合集)

文章目录 一、检测相关(12篇)1.1 Linear Object Detection in Document Images using Multiple Object Tracking1.2 Hybrid Energy Based Model in the Feature Space for Out-of-Distribution Detection1.3 BEV-IO: Enhancing Birds-Eye-View 3D Detection with Instance Occu…

原来你是这样的5G 一文了解亚马逊云科技的云上5G专网

根据麦肯锡公司发布的《2021年离散制造业上云调查》报告显示&#xff1a;云转型所带来的IT价值仅占其潜在价值的5&#xff05;&#xff0c;但其业务价值高达95&#xff05;。随着云计算技术的快速发展以及云的IT价值在敏捷性、弹性和经济性几个方面的充分呈现加上同5G技术和应用…

8项seo的日常工作

SEO的日常工作涵盖了一系列任务和活动&#xff0c;旨在优化网站以提高在搜索引擎中的排名和可见性。 以下是SEO的日常工作内容&#xff1a; 关键词研究和优化&#xff1a;定期进行关键词研究&#xff0c;寻找与目标受众和业务相关的热门关键词。优化网站内容、标题、元描述和链…

《Cocos Creator游戏实战》签到日历实现思路

在线体验地址 Cocos Creator | SignCalendar Cocos Store 购买地址&#xff08;如果没有显示&#xff0c;那就是还在审核&#xff09;&#xff1a; https://store.cocos.com/app/detail/4975微店购买地址&#xff1a; https://weidian.com/item.html?itemID6354270477 运行效…

【书评】《写作脑科学》杨滢(@屠龙的胭脂井)

《写作脑科学》是一本介绍写作与脑科学关系的书籍&#xff0c;作者是杨滢。 本书通过对脑科学的研究和分析&#xff0c;揭示了写作的本质和技巧&#xff0c;为写作者提供了有益的指导和启示。 本书的主要内容分为八个部分 第1章 为什么写作跟大脑有关第2章 快速写作&#xff…

Photoshop 2023 Beta 内置Ai绘图功能介绍安装教程

距离Adobe软件公司首次将图像编辑及数字绘画软件Photoshop推出到大众面前已经过去35年&#xff0c;最近该公司又再次书写了属于Photoshop的历史新篇章。 最近&#xff0c;Adobe 宣布 Photoshop&#xff08;Beta&#xff09;迎来更新&#xff0c;新增「创意填充&#xff08;Gen…

3.3. 日期与时间类(Date、Calendar、LocalDate等)

在Java中&#xff0c;我们经常需要处理日期和时间。Java提供了一些类来帮助我们完成这些任务&#xff0c;如Date、Calendar、LocalDate、LocalTime、LocalDateTime和ZonedDateTime等。我们将分别介绍这些类&#xff0c;并给出相应的示例。 1. Date类 Date类是Java提供的一个表…

Redis的地理位置(GEO)+Hypterloglog+事务测试

GEOADD 命令 - 将指定的地理空间位置&#xff08;纬度、经度、名称&#xff09;添加到指定的key中&#xff0c;这些数据将会存储到sorted set 有效的经度从-180度到180度。有效的纬度从-85.05112878度到85.05112878度。 当坐标位置超出上述指定范围时&#xff0c;该命令将会返…

chatgpt赋能python:Python中Numpy报错分析

Python中Numpy报错分析 Numpy是Python中重要的开源数值计算库&#xff0c;它提供了数组和矩阵的操作。在使用Numpy的过程中&#xff0c;有时候我们会遇到一些报错信息&#xff0c;本文将对常见的Numpy报错进行分析和解决方法的介绍。 NumPy报错信息 当我们在使用Numpy时出现…