华为OD机试真题 Java 实现【寻找符合要求的最长子串】【2023Q1 200分】

news2024/11/20 15:25:21

在这里插入图片描述

一、题目描述

给定一个字符串 s ,找出这样一个子串:

  1. 该子串中的任意一个字符最多出现2次;
  2. 该子串不包含指定某个字符;

请你找出满足该条件的最长子串的长度。

二、输入描述

第一行为要求不包含的指定字符,为单个字符,取值范围[0-9a-zA-Z]。

第二行为字符串s,每个字符范围[0-9a-zA-Z],长度范围[1,10000]。

三、输出描述

一个整数,满足条件的最长子串的长度;如果不存在满足条件的子串,则返回0。

四、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    // 第一行为要求不包含的指定字符,为单个字符,取值范围[0-9a-zA-Z]。
    char c = sc.nextLine().charAt(0);
    // 第二行为字符串s,每个字符范围[0-9a-zA-Z],长度范围[1,10000]。
    String line = sc.nextLine();

    int left = 0;
    int max = 0;
    Map<Character, Integer> map = new HashMap<Character, Integer>();
    // 遍历第二行字符串的每个字符
    for (int i = 0; i < line.length(); i++) {
        char ch = line.charAt(i);
        // 该子串不包含指定某个字符
        if (ch == c) {
            map.clear();
            left = i + 1;
            continue;
        }

        map.put(ch, map.getOrDefault(ch, 0) + 1);
        // 该子串中的任意一个字符最多出现2次
        while (map.get(ch) == 3) {
            char threeC = line.charAt(left);
            left++;
            map.put(threeC, map.get(threeC) - 1);
        }
        // 满足该条件的最长子串的长度
        max = Math.max(max, i - left + 1);
    }

    System.out.println(max);
}

五、效果展示

1、输入

a
nezhastudyjava

2、输出

6

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【投篮大赛】【2023Q1 100分】

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

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

在这里插入图片描述

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

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

相关文章

一个神奇的工具,让URL地址都变成了“ooooooooo“

一个神奇的工具&#xff0c;让URL地址都变成了"ooooooooo" 一、核心代码二、URL编码/解码 最近发现一个有意思工具&#xff0c;就是将一个URL地址转换为都是 ooooooooo 的样子&#xff0c;通过转换后的地址访问可以转换回到原始地址&#xff0c;转换的逻辑有点像短链…

mysql8绿色版安装教程

最近在安装mysql8绿色版&#xff0c;以下是安装过程中的一些步骤&#xff1a; 1&#xff1a;解压zip压缩包至想要安装的目录&#xff0c;比如解压到D:\mysql\mysql-8.0.29-winx64 2&#xff1a;在解压目录D:\mysql-8.0.29-winx64中创建MySQL配置文件my.ini 配置文件my.ini内容…

Unity3D安装:离线安装 Unity

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 在没有 Hub 的情况下离线安装 Unity Unity 下载助手 (Download Assistant) 支持离线部署。在这种部署方式中&#xff0c;可下载用于安装 Unity 的所有文件&#xff0c;然后生成脚本…

【日常】如何增加粉丝的粘性?

【日常】如何增加粉丝的粘性&#xff1f; 1、前言2、官方活动3、作品质量4、打造自己的社区 1、前言 不知不觉间&#xff0c;铁粉已经过千了&#xff0c;粉丝数也即将两万&#xff0c;总而言之&#xff0c;越努力&#xff0c;越幸运&#xff0c;付出就有回报&#xff08;当然在…

面了个阿里拿36K出来的,真是砂纸擦屁股,给我漏了一手

今年的春招已经结束&#xff0c;很多小伙伴收获不错&#xff0c;拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文&#xff0c;为此咱这里也统一做一次大整理和大归类&#xff0c;这也算是划重点了。 俗话说得好&#xff0c;他山之石…

减肥瘦身自律APP软件开发功能有哪些?

减肥瘦身是很多女人一生都在奋斗的目标&#xff0c;如果找不对方法&#xff0c;减肥效果事倍功半还可能会反弹&#xff0c;所以越来越多的人推崇健康科学的减肥理念&#xff0c;把瘦身的重心转移到饮食和运动管理上&#xff0c;于是市场上出现了减肥瘦身自律类的APP软件&#x…

一位27岁软件测试员,测试在职近5年,月薪还不到2W,担心被应届生抢走饭碗

工作了近5年&#xff0c;一个月工资不到20K&#xff0c;担心被应届毕业生取代&#xff01;互联网的快速发展伴随着员工适者生存的加速&#xff0c;测试员的薪资也在不断增长&#xff0c;以3年、5年、8年为一条分水岭。如果人们的能力和体力不够&#xff0c;他们就会被淘汰。看起…

leetcode 146.LRU 缓存

题目链接&#xff1a;leetcode 146 1.题目 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中&#xff0…

第四届全国人工智能大赛答疑分享会等你围观

为了帮助参赛团队更精准地理解赛题、更合理地运用AI相关技术&#xff0c;第四届全国人工智能大赛组委会诚邀鹏城实验室副研究员杨文瀚老师为大家进行AI视觉特征编码赛题解析与答疑&#xff0c;并分享《交通场景下的高效紧致特征表达》。 此次答疑分享会将于5月26日&#xff08…

供应商管理软件如何帮助企业提高盈利能力?

为了在当今快节奏的商业环境中保持竞争力和刺激增长&#xff0c;供应商管理技术正变得至关重要。供应商管理是任何公司最关键的因素之一&#xff0c;其中包括考核供应商、采购及招投标管理、协同管理等多项任务。 随着成熟的供应商管理软件的出现&#xff0c;企业主现在可以优…

三大特性之多态

文章目录 静态的多态动态的多态虚函数虚函数的重写&#xff08;覆盖&#xff09;利用虚函数重写实现多态重写的两个例外1.协变2.析构函数的函数名不同 C11的override和final 重载&#xff0c;重写&#xff08;覆盖&#xff09;&#xff0c;重定义&#xff08;隐藏&#xff09;抽…

什么是客户旅程,为什么它很重要?

多年来&#xff0c;企业专注于客户接触点来衡量客户满意度。近年来&#xff0c;企业已经看到接触点并不能捕捉到全貌。客户接触点只能在一个时间点衡量满意度。他们不一定保证客户对他们的整个旅程感到满意。但什么是客户接触点&#xff1f;是客户与企业互动的特定时刻&#xf…

怎么格式化只读U盘?

用户在格式化期间遇到磁盘只读&#xff08;写保护&#xff09;问题是比较常见的。通常&#xff0c;如果你的U盘处于写保护状态&#xff0c;则它便是只读&#xff0c;不允许你删除或修改U盘上的任何文件&#xff0c;以保护U盘的数据安全。如果需要只读u盘怎么格式化的问题&#…

免费的SVG在线编辑器大推荐

随着响应网络的发展&#xff0c;越来越多的高质量的SVG在线编辑器被公众所熟知。SVG矢量图形也越来越受欢迎&#xff0c;以便在任何设备上呈现图像&#xff0c;甚至一些易于使用的SVG在线编辑器&#xff0c;可以替代PS&#xff0c;本文总结了五种流行的SVG在线编辑器。 1.即时…

使用Windbg静态分析dump文件的完整过程介绍

目录 1、概述 2、静态分析dump文件的一般步骤 2.1、查看异常类型 2.2、使用.ecxr命令切换到发生异常的线程上下文&#xff0c;查看发生异常的那条汇编指令 3、问题分析实例说明 4、使用Windbg详细分析dump文件&#xff0c;展现完整分析过程 4.1、查看异常类型和发生崩溃…

FreeRTOS:队列

目录 前言一、队列简介1.1数据存储1.2多任务访问1.3出队阻塞1.4入队阻塞1.5队列操作过程图示1.5.1创建队列1.5.2向队列发送第一个消息1.5.3向队列发送第二个消息1.5.4从队列中读取消息 二、队列结构体三、队列创建3.1创建函数3.2函数xQueueCreateStatic()3.3函数xQueueCreate()…

隐私计算论文合集「联邦学习系列」第2期

前言&#xff1a; 隐语awesome-PETs&#xff08;PETs即Privacy-Enhancing Technologies &#xff0c;隐私增强技术&#xff09;精选业内优秀论文&#xff0c;按技术类型进行整理分类&#xff0c;旨在为隐私计算领域的学习研究者提供一个高质量的学习交流社区。awesome-pets包含…

集权设施攻防兵法:实战攻防之AD篇

一、黑客眼中的AD AD域是攻击者经常攻击的目标&#xff0c;因为AD域作为企业的核心身份验证和授权系统&#xff0c;攻击AD域可以使攻击者获得系统内所有计算机和用户的权限&#xff0c;从而轻松获取敏感信息和控制企业系统。 另外&#xff0c;AD域内存在众多的计算机资产&…

使用git在Github上创建自己的项目及一些基础操作

使用git在Github上创建自己的项目及一些基础操作 一、什么是git Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具…

Doris安装

Apache Doris 由百度大数据部研发&#xff08;之前叫百度 Palo&#xff0c;2018 年贡献到 Apache 社区后&#xff0c; 更名为 Doris &#xff09;&#xff0c;在百度内部&#xff0c;有超过 200 个产品线在使用&#xff0c;部署机器超过 1000 台&#xff0c;单一 业务最大可达…