华为OD机试【求满足条件的最长子串的长度】(java)(100分)

1、题目描述

给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求:

  1. 只包含1个字母(a-z, A-Z),其余必须是数字;
  2. 字母可以在子串中的任意位置;
    如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。

2、输入描述

字符串(只包含字母和数字)。

3、输出描述

子串的长度。
用例:

输入
abC124ACb输出
4ps:满足条件的最长子串是C124或者124A,长度都是4

用例:

输入
abcdef输出
-1
ps:没有满足条件的子串

温馨提示!!!
华为OD机试考试官方会对考生代码查重。华为od机试因为有题库所以有很大的概率抽到原题。如果碰到了题库中的原题,千万不要直接使用题解中的代码,一定要做些修改,比如代码中的变量名,除此之外,代码的组织结构和逻辑也要进行一些改变,所以在日常的刷题中,要提前编写好属于自己的代码。

4、题解

本题通过双指针解决,关键点在于要求字符串中只能有1个字母
代码如下:

public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();char[] chs = str.toCharArray();int maxLen = -1;// 是否字母boolean isCap = false;for (int i=0; i<chs.length; i++) {char ch = chs[i];if (Character.isLetter(ch)) {isCap = true;}for (int j=i+1; j<chs.length; j++) {if (Character.isLetter(chs[j])) {if (isCap) {if (j-i > 1) {maxLen = Math.max(maxLen, j-i);}isCap = false;break;}else {isCap = true;}}else {if (isCap) {maxLen = Math.max(maxLen, j-i+1);}}}}System.out.println(maxLen);
}

执行结果如下:
在这里插入图片描述

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

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

相关文章

Istio基础知识

一、什么是Istio Istio 提供⼀种简单的⽅式来为已部署的服务建⽴⽹络&#xff0c;该⽹络具有 负载均衡、服务间认证、监控等功能&#xff0c;只需要对服务的代码进⾏⼀点或不需要做任何改动。想要让服务⽀持 Istio&#xff0c;只需要在您的环境中部署⼀个特殊的 sidecar 代 理&…

【玩转Google云】GCP 制品管理:Artifact Registry 使用详解

本篇博文将带您深入了解 Google Cloud Platform (GCP) 的 Artifact Registry,一个功能强大的统一制品仓库,用于存储、管理和保护您的软件制品。我们将详细介绍 Artifact Registry 的核心概念、优势以及使用步骤,帮助您轻松上手并将其集成到您的开发流程中。 目录 一、Arti…

工程技术SCI期刊,中科院3区,IF=3+,收稿范围广泛!

一、期刊名称 International Journal of Critical Infrastructure Protection 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;工程技术 影响因子&#xff1a;3.6 中科院分区&#xff1a;3区 出版方式&#xff1a;订阅模式/开放出版 版面费&#xff1a;…

C++知识点总结(32):STL(vector)

动态数组 vector 一、概念1. 意义2. 优点3. 一维动态数组(1) 定义(2) 功能函数(3) 注意事项 4. 二维动态数组(1) 二维静态数组的局限(2) 二维动态数组操作a. 定义b. 初始化 5. 迭代器(1) 概念(2) 定义(3) 遍历(4) 功能函数 二、例题1. 命令列表(1) 审题(2) 参考答案 2. 借阅表格…

c语言排序算法之六(选择排序)

前言 以下内容是被验证可以有效理解选择排序&#xff0c;代码也较容易理解。如果你发现还有很多需要增加的&#xff0c;欢迎留言。 为什么要单独写排序算法这一系列&#xff0c;看过一些贴子普遍篇幅较长。看完还依旧云里雾里&#xff0c;难以直观理解原理及整个过程。代码永…

【JavaEE 初阶(二)】线程安全问题

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多线程知识 目录 1.前言2.synchronized2.1例子2.2synchronized修饰代码块2.3 synchronized修饰方法2.4sy…

0x003 SQLMAP如何检测是否存在SQL注入

0x003 SQLMAP如何检测是否存在SQL注入 我们直接看到lib.controller.controller​中的strat()​方法 因为start()​代码较长,所以我们这里就调重要的代码进行分析 parseTargetUrl()testSqlInj Falseif PLACE.GET in conf.parameters and not any((conf.data, conf.testParam…

linux中Could not load [org.bouncycastle.jcajce.provider.symmetric.RC2$KeyGen

问题描述 在linux中部署java项目&#xff0c;项目中有使用凭证加密。 解决方法 查询项目使用Java的在系统中的位置&#xff1b;找到对应java的jre路径&#xff1b;将bcprov-jdk14-127.jar放入JAVA_HOME/jre/lib/ext下&#xff1b;打开JAVA_HOME/jre/lib/security下的java.se…

分布式领域计算模型及SparkRay实现对比

目录 一、分布式计算领域概览 二、Spark计算模型分析 三、Ray计算模型分析 3.1 需求分析 3.2 系统设计 3.3 系统实现 四、总结 一、分布式计算领域概览 当前分布式计算模型主要分为以下4种&#xff1a; Bulk Synchronous Parallel Model&#xff08;块同步并行模型&…

【Linux 11】进程地址空间

文章目录 &#x1f308; Ⅰ 虚拟地址引入&#x1f308; Ⅱ 虚拟地址空间&#x1f308; Ⅲ 页表 (解释 fork() 的返回值既 > 0 又 0)&#x1f308; Ⅳ 什么是地址空间&#x1f308; Ⅴ 为什么要有地址空间 &#x1f308; Ⅰ 虚拟地址引入 现在通过一段代码来观察一个现象&a…

初识指针(1)<C语言>

前言 指针是C语言中比较难的一部分&#xff0c;大部分同学对于此部分容易产生“畏难情结”&#xff0c;但是学习好这部分对C语言的深入很大的帮助&#xff0c;所以此篇主要以讲解指针基础为主。 指针概念 变量创建的本质就是在内存中申请空间&#xff0c;找到这个变量就需要地址…

GO语言核心30讲 实战与应用 (第一部分)

原站地址&#xff1a;Go语言核心36讲_Golang_Go语言-极客时间 一、测试的基本规则和流程 1. GO程序主要分三类测试&#xff1a;功能测试、性能测试&#xff0c;以及示例测试。 示例测试和功能测试差不多&#xff0c;但它更关注程序打印出来的内容。 2. 测试文件的名称应该以…

交互中的“互”难以产生的原因

脑机交互技术的目标是通过分析和解读大脑活动&#xff0c;将其与特定的意图、指令或行为连接起来。通过训练和分析&#xff0c;可以建立起大脑活动与特定行为或意图之间的关联模型&#xff0c;从而实现脑机交互的应用&#xff0c;例如控制外部设备、传递信息等。然而&#xff0…

Python机器学习实验 Python 数据可视化

1.实验目的 掌握 Matplotlib 数据可视化的常用方法。 2.实验内容 1. 绘制鸢尾花数据集的特征分布图 说明&#xff1a;鸢尾花是单子叶百合目花卉&#xff0c;是一种比较常见的花&#xff0c;鸢尾花的品种较多。 鸢尾花数据集最初由 Edgar Anderson 测量得到&#xff0c;而后在…

android中给view添加遮罩层

1.在 res 目录中添加 id : <?xml version"1.0" encoding"utf-8"?> <resources><item name"view_mask_id" type"id" /> </resources> 2.扩展方法: /** 给一个 View 添加一层由 [res] 填充的遮罩层布局, 可…

深入学习和理解Django模板层:构建动态页面

title: 深入学习和理解Django模板层&#xff1a;构建动态页面 date: 2024/5/5 20:53:51 updated: 2024/5/5 20:53:51 categories: 后端开发 tags: Django模板表单处理静态文件国际化性能优化安全防护部署实践 第一章&#xff1a;模板语法基础 Django模板语法介绍 Django模…

每天五分钟深度学习:数学中常见函数中的导数

本文重点 导数是微积分学中的一个核心概念,它描述了函数在某一点附近的变化率。在物理学、工程学、经济学等众多领域中,导数都发挥着极其重要的作用。本文旨在详细介绍数学中常见函数的导数,以期为读者提供一个全面而深入的理解。 数学中常见的导数 常数函数的导数 对于常数…

ctfshow 框架复现

文章目录 web 466web 467web 468web469web 470web 471web 472web 473web 474web 475web 476 web 466 Laravel5.4版本 &#xff0c;提交数据需要base64编码 代码审计学习—Laravel5.4 - 先知社区 (aliyun.com) 用第二条链子 反序列化格式 /admin/序列化串base64<?php na…

大模型在自动驾驶领域的应用

大模型在自动驾驶领域的应用主要体现在以下几个方面&#xff1a; 1. **感知与识别**&#xff1a;自动驾驶车辆需要准确地感知周围环境&#xff0c;包括其他车辆、行人、交通标志等。大型深度学习模型&#xff0c;如卷积神经网络&#xff08;CNN&#xff09;和递归神经网络&…

(论文阅读-多目标优化器)Multi-Objective Parametric Query Optimization

目录 摘要 一、简介 1.1 State-of-the-Art 1.2 贡献和大纲 二、定义 三、相关工作 四、问题分析 4.1 分析 4.2 算法设计影响 五、通用算法 5.1 算法概述 5.2 完备性证明 六、分段线性代价函数算法 6.1 数据结构 6.2 基本运算实现 6.3 复杂度分析 七、实验评估 …