华为OD机试真题B卷 Java 实现【最长子字符串的长度】

news2024/9/29 7:32:29

在这里插入图片描述

一、题目描述

给你一个字符串s,字符串s首尾相连组成一个环形,请你在环形中找出‘o’字符出现了偶数次最长子字符串的长度。

二、输入描述

输入一串小写字母组成的字符串。

三、输出描述

输出一个整数。

四、解题思路

题目要求在给定的环形字符串中找出字符’o’出现了偶数次的最长子字符串的长度。

解题思路如下:

  1. 读取输入的环形字符串;
  2. 将环形字符串转换为字符数组;
  3. 统计字符数组中字符’o’的个数,记为num;
  4. 判断num的奇偶性,如果num为偶数,表示字符’o’出现了偶数次,直接输出环形字符串的长度len作为最长子字符串的长度;如果num为奇数,表示字符’o’出现了奇数次,输出环形字符串的长度len减去1作为最长子字符串的长度;
  5. 输出最长子字符串的长度。

解题思路分析:

该算法首先统计字符’o’在环形字符串中出现的次数,然后根据次数的奇偶性确定最长子字符串的长度。如果字符’o’出现了偶数次,那么整个环形字符串都可以作为最长子字符串;如果字符’o’出现了奇数次,需要去掉一个字符’o’以满足出现次数的偶数性质,所以最长子字符串的长度为环形字符串长度减去1。算法的时间复杂度为O(n),其中n为环形字符串的长度。

五、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    // 首尾相连组成一个环形的字符串
    String line = sc.nextLine();
    char[] chrs = line.toCharArray();
    int len = chrs.length;
    // 环形中‘o’字符的个数
    int num = 0;

    for (char chr : chrs) {
        if (chr == 'o') {
            num += 1;
        }
    }

    // 出现了偶数次
    if (num % 2 == 0) {
        System.out.println(len);
    } else {
        // 出现了奇数次
        System.out.println(len - 1);
    }
}

六、效果展示

1、输入

neozhastudyoo

2、输出

12

3、说明

包含偶数个的最长的字符串是neozhastudyo,长度为12。

在这里插入图片描述


🏆下一题:华为OD机试真题 Java 实现【最多提取子串数目】【2023Q1 100分】

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

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

在这里插入图片描述

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

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

相关文章

kong网关安装及konga安装

一、kong安装 安装机器地址:192.168.19.50 1、自定义一个docker网络 [rootmin ~]# docker network create kong-net a9bde4e7d16e4838992000cd5612476b238f7a88f95a07c994a9f57be7f64c10查看网络是否创建成功 [rootmin ~]# docker network ls NETWORK ID NA…

3DMAX车缝线生成器插件使用方法详解

3dMax车缝线生成器插件,用于创建缝合对象和一个对象,以沿样条线或仅通过绘制选定边上的缝合之间的孔。 目前有两种类型的缝线,圆形缝线和平面缝线。对于给定类型的针脚,它们的厚度是最常用的。缝线的长度和间距以及旋转都可以很容易地调整,这些参数也可以随机设置,以创造…

vscode + CMake 构建C语言项目

文章目录 1. 所需工具2. 配置1. 编写顶级目录下的 CMakeLists.txt2. 编写子目录 src 里的 CMakeLists.txt3. 添加测试文件4. 开始构建 1. 所需工具 Visual Stduio Code(vscode) CMake 简介: CMake 是一个跨平台的 构建工具,用于 …

[论文阅读73]Prefix-Tuning:Optimizing Continuous Prompts for Generation

1. 基本信息 题目论文作者与单位来源年份Prefix-Tuning:Optimizing Continuous Prompts for GenerationXiang Lisa Li等 Stanford UniversityAnnual Meeting of the Association for Computational Linguistics2021 Citations 1009, References 论文链接&#xf…

基于java的超市管理系统设计与实现

摘 要 随着小型超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长,传统的人工记忆方式也慢慢的无法适应形势的变化。随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发…

EMNLP - 征集系统演示

Call For System Demonstrations - EMNLP 2023 EMNLP 2023 系统演示计划委员会邀请演示计划的提案。演示范围从早期研究原型到成熟的生产就绪系统。特别感兴趣的是公开可用的开源或开放访问系统。鉴于自然语言处理领域的理论和应用研究的现状,我们还强烈鼓励展示技术…

利用画图以及代码分析详细解读外排序的实现过程

外排序的实现 思想代码分析完整代码 如果有海量数据需要排序,而在内存中放不下这么多数据,因此就不能使用内排序(直接插入排序,希尔排序,堆排序,快速排序,归并排序等等)。关于想了解…

Java利用JOL工具分析对象分布

对象的组成 对象头[Header] Markword:存储对象自身运行时数据如hashcode、gc分代年龄等,64位系统总共占用8个字节,关于Markword详细内存分布如下 类型指针:对象指向类元数据地址的指针,jdk8默认开启指针压缩&#xff…

算法基础学习笔记——⑫最小生成树\二分图\质数\约数

✨博主:命运之光 ✨专栏:算法基础学习 目录 ✨最小生成树 🍓朴素Prim 🍓Kruskal算法 ✨二分图 🍓匈牙利算法 ✨质数 🍓(1)质数的判定——试除法 🍓(2&…

简单认识OSI(计算机网络分层)七层模型

前言 学校上课讲的太笼统啥也不是,自己学的太玄学似懂非懂突然在看到了一篇公众文文章。文章从初始到现在,步步为营的遇到一个解决一个前人的问题,有了细致入微的讲述,把之前学的死东西都连起来了。 如果让你来设计网络https://m…

chatgpt赋能python:Python取余数:介绍和实际应用

Python取余数:介绍和实际应用 Python是一种高级编程语言,其灵活性和多功能性使其成为开发者的首选之一。在Python中,取余数是常见的数学运算之一,这个操作在编写程序时非常有用。在本文中,我们将介绍Python中的取余数…

chatgpt赋能python:Python中单行输出的使用方法

Python中单行输出的使用方法 Python是广泛使用的高级编程语言之一,具有易于学习、可读性强和简单易用等优点。在Python编程中,我们经常需要输出文本内容,而Python中单行输出便是一个非常重要的功能。 什么是单行输出 单行输出是指将多个元…

TDengine 深入解析缓存技术

TDengine是一款高性能的物联网大数据平台。为了高效处理时序数据,TDengine中大量用到了缓存技术,自己实现了哈希表、缓存池等技术。本文会为大家讲解TDengine中用到的这些缓存技术。 首先会介绍一下什么是缓存,常用的缓存技术,最后…

想知道怎么翻译多个文本?我教你三个好方法吧

随着电子商务的全球化发展,越来越多的企业意识到将产品推向全球市场的重要性。在全球市场中,各种语言和文化的消费者都存在着巨大的潜在需求。为了吸引和服务这些不同语言的客户,企业需要采取一系列的措施,其中翻译是至关重要的一…

科技发展的那些事儿

近30年来,科技发展取得了惊人的成就,涉及范围广泛,包括计算机科学、通讯技术、生物医学、能源等多个领域。本文将列举近30年来科技发展的重要事件,并探讨这些事件对我们的生活、工作和社会产生的影响。 1991年,Linux操…

chatgpt赋能python:Python中可以用八进制表示整数吗?

Python中可以用八进制表示整数吗? Python是一种流行的动态编程语言,它支持许多整数表示方法。八进制是一种表示整数的方法,那么Python中可以使用八进制表示整数吗?本文将探讨这个问题。 什么是八进制? 在计算机科学…

基于SSM的服装设计供需系统设计与实现

摘 要:作为服装设计的重要形式之一,服装具有显著的审美性,是人类情感表达不可忽视的代表形态。但在新时期背景下,随着服装设计的进一步优化,服装设计创新融合强度也随之增强。本文就服装设计供需系统进行深入探究。 服…

chatgpt赋能python:如何在Python中去掉逗号

如何在Python中去掉逗号 在Python编程中,逗号是一个非常常见的符号,它通常用于分隔多个变量或值。然而,有时候我们需要从文本中去掉逗号,以便更好地处理数据。那么在Python中,如何去掉逗号呢?接下来&#…

华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路

一、题目描述 特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。 车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位&a…

idea使用Alibaba Cloud Toolkit插件远程操作Docker

idea使用Alibaba Cloud Toolkit插件远程操作Docker 前言 从github下载的开源项目源码,你基本上都能在项目根目录下发现会有个Dockerfile文件,Dockerfile文件是记录构建docker容器的构建命令,用途:一般用来将本地的jar包远程传输到…