华为OD机试 - 密码输入检测(Java 2024 C卷 100分)

在这里插入图片描述

华为OD机试 2024C卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷+C卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

给定用户密码输入流input,输入流中字符 ‘<’ 表示退格,可以清除前一个输入的字符,请你编写程序,输出最终得到的密码字符,并判断密码是否满足如下的密码安全要求。

密码安全要求如下:

  1. 密码长度>=8;
  2. 密码至少需要包含1个大写字母:
  3. 密码至少需要包含1个小写字母;
  4. 密码至少需要包含1个数字;
  5. 密码至少需要包含1个字母和数字以外的非空白特殊字符;

注意空串退格后仍然为空串,且用户输入的字符串不包含 ‘<’ 字符和空白字符。

二、输入描述

用一行字符串表示输入的用户数据,输入的字符串中 ‘<’ 字符标识退格,用户输入的字符串不包含空白字符,例如:ABC<c89%000<

三、输出描述

输出经过程序处理后,输出的实际密码字符串,并输出该密码字符串是否满足密码安全要求。两者间由 ‘,’ 分隔,例如:ABc89%00,true

四、解题思路

1、处理退格符:

使用一个栈(Stack)或可变字符串(StringBuilder)来处理输入字符串中的退格符。遍历输入字符串,对于普通字符,将其添加到栈或StringBuilder中;对于退格符’<',如果栈/字符串不为空,则移除最后一个字符。

2、验证密码规则:

需要验证密码是否满足以下条件:

  • 至少8个字符长。
  • 至少一个大写字母。
  • 至少一个小写字母。
  • 至少一个数字。
  • 至少一个特殊字符(既非字母也非数字的字符)。

创建相应的标志变量来跟踪每个条件是否被满足,然后遍历最终的密码字符串来更新这些标志。

3、输出结果:

根据上述验证结果,输出密码字符串及其是否符合安全要求的标志。

五、Java算法源码

public class OdTest01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String password = processInput(input);
        boolean isValid = validatePassword(password);
        System.out.println(password + "," + isValid);
    }

    // 处理输入,考虑退格符
    private static String processInput(String input) {
        StringBuilder sb = new StringBuilder();
        for (char ch : input.toCharArray()) {
            if (ch == '<') {
                if (sb.length() > 0) {
                    sb.deleteCharAt(sb.length() - 1);
                }
            } else {
                sb.append(ch);
            }
        }
        return sb.toString();
    }

    // 验证密码是否满足指定的安全要求
    private static boolean validatePassword(String password) {
        if (password.length() < 8) {
            return false;
        }
        boolean hasUpper = false, hasLower = false, hasDigit = false, hasSpecial = false;

        for (int i = 0; i < password.length(); i++) {
            char c = password.charAt(i);
            if (Character.isUpperCase(c)) {
                hasUpper = true;
            } else if (Character.isLowerCase(c)) {
                hasLower = true;
            } else if (Character.isDigit(c)) {
                hasDigit = true;
            } else {
                hasSpecial = true;
            }
        }

        return hasUpper && hasLower && hasDigit && hasSpecial;
    }
}

六、效果展示

1、输入

ABC<c89%000<

2、输出

ABc89%00,true

3、说明

多余的C和0由于退格被去除,最终用户输入的密码为ABc89%00,且满足密码安全要求输出true

在这里插入图片描述


🏆下一篇:华为OD机试 - 简易内存池 - 逻辑分析(Java 2024 C卷 200分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷+C卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode经典例题之环形队列

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 目录 1、题目展示2、问题分析3、完整代码展示4、结语 1、题目展示 在拿到题目时&#xff0c;通…

前端动态旋转地球背景

效果图 贴下源码 <template><div class"map-bg"><div class"canvas" id"canvs"></div><canvas class"canvasxk" id"canv"></canvas></div> </template><script setup …

如何快速提取出一个文件里面全部指定类型的文件的全部路径

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 打开工具&#xff0c;切换到第五个模块&#xff0c;文件批量复制模块&#xff08;快捷键&#xff1a;Ctrl5&#xff09; 点击右边的“搜索添加”按钮&#…

20 分页:较小的表

目录 简单的解决方案&#xff1a;更大的页 混合方法&#xff1a;分页和分段 多级页表 详细的多级示例 超过两级 ​编辑地址转换过程&#xff1a;记住TLB 反向页表 将页表交换到磁盘 之前提到的一个问题&#xff1a;就是页表太大&#xff0c;假设一个 32 位地址空间&…

高中数学:平面向量-基本概念

一、定义 有方向&#xff0c;且有大小的量&#xff0c;就叫向量 与之对应的是&#xff0c;数量&#xff0c;只有大小&#xff0c;没有方向 例如 A B → \mathop{AB}\limits ^{\rightarrow} AB→ a → \mathop{a}\limits ^{\rightarrow} a→ 二、相关性质 相等 大小相同…

(超详细讲解)实现将idea的java程序打包成exe (新版,可以在没有java的电脑下运行,即可以发给好朋友一起玩)

目录 实现打包到exe大概步骤 工具准备 1.将java程序文件打包成jar文件 2.准备好jre文件 3.使用exe4j软件打包好 4.最终打包 实现打包到exe大概步骤 1.打包需要满足的条件&#xff1a;将java文件转成jar文件的工具exe4j、 以及需要满足jdk1.8以上&#xff08;因安装exe4…

【必看】Spring系列面试题

Spring Core Container, AOP, Data Access, Web... 基础 1. 简单介绍Spring 一款开源的轻量级 Java 开发框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性。Spring 支持 IoC&#xff08;Inversion of Control:控制反转&#xff09; 和 AOP(Aspect-Oriented Pro…

网络隔离状态下,如何可以安全高效地进行研发文件外发?

研发部门的数据传输通常需要保证数据的安全性、完整性和保密性&#xff0c;尤其是当涉及到公司的核心技术、产品设计、源代码等重要信息时。研发文件外发&#xff0c;即研发资料的外部传输&#xff0c;通常涉及到公司的核心技术和商业机密&#xff0c;因此需要采取严格的安全措…

动态NAT

在上一章静态NAT中我们提过了&#xff0c;静态NAT只能一对一映射&#xff0c;无法有效缓解IPV4地址池紧张的问题&#xff0c;那么我们今天来学习一个新的技术——动态NAT&#xff0c;来解决这个问题。 第一章 1.1 动态NAT工作流程 动态NAT基于地址池来实现私有地址和公有地址的…

学习软考----数据库系统工程师29

数据操作 SELECT基本结构 简单查询 连接查询 子查询 聚集函数 分组查询 字符串操作 集合操作 外连接 INSERT INTO语句 DELETE语句 UPDATE语句

融入新科技的SLM27211系列 120V, 3A/4.5A高低边高频门极驱动器兼容UCC27284,MAX15013A

SLM27211是高低边高频门极驱动器&#xff0c;集成了120V的自举二极管&#xff0c;支持高频大电流的输出&#xff0c;可在8V~17V的宽电压范围内驱动MOSFET&#xff0c;独立的高、低边驱动以方便控制&#xff0c;可用于半桥、全桥、双管正激和有源钳位正激等拓。有极好的开通、关…

下载文件名称乱码或变成了随机码

如图 后端是有正常返回附件名称的,浏览器开发工具中也正常显示了这个数据,但是下载下来的文件名称确实一堆随机码. 其实这个问题的原因是因为跨域 查看console: Refused to get unsafe header "content-disposition" 现象,后端传递到前端的fileName不能被识别,下载…

吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):Lab02 TensorFlow构建神经网络

这里写目录标题 实验目的导入训练集并绘制散点图特征缩放处理数据集扩展数据集TensorFlow构建神经网络模型1.设置模型的层2.获取模型信息2.优化模型3.设置模型参数3.开始预测4.转换预测结果 检测神经元的功能1.目的2.准备工作3.第一层的预测与真实数据的对比2.第二层3.神经网络…

【.net core】微信支付基础功能(开发及使用)

注意 微信开发前期准备工作参照&#xff1a;【微信开发】微信支付前期准备工作&#xff08;申请及配置&#xff09;-CSDN博客 本文仅提供微信支付下单&#xff0c;付款&#xff0c;回调&#xff0c;退款等基础功能内容&#xff0c;更多微信支付功能请参照微信支付官网:微信支…

GT2712-STBD 三菱触摸屏12.1寸型

GT2712-STBD 三菱触摸屏12.1寸型 GT2712-STBD参数说明&#xff1a;12.1型, SVGA, TFT彩色液晶屏 65536色, 黑色边框, 电源DC24V。 一、三菱触摸屏GT2712-STBD性能规格&#xff1a; [显示部*1*2] . 显示软元件:TFT彩色液晶屏 . GT2712-STBD画面尺寸:12.1寸 . GT2712-STBD…

这三大场景是未来电瓶车充电桩布局的重中之重

电瓶车充电桩主板作为电瓶车充电系统中的核心组成部分&#xff0c;在实际应用场景中发挥着关键作用。 电瓶车充电桩主板作为电瓶车充电系统的核心组成部分&#xff0c;在各种应用场景中发挥着关键作用。下面我们将一起探讨电瓶车充电桩主板未来重点布局的场景。 01、老旧小区—…

PVFS: A Parallel File System for Linux Clusters——论文泛读

ALS 2000 Paper 分布式元数据论文阅读笔记整理 问题 Linux集群作为低成本、高性能并行计算平台&#xff0c;但缺乏并行文件系统的支持&#xff0c;它对于此类集群上的高性能I/O至关重要。 本文方法 本文为Linux集群开发了一个并行文件系统&#xff0c;称为并行虚拟文件系统…

云原生技术发展概述:投身云计算,从拥抱云原生开始

一、云原生的起源 云计算领域正在进行着一场革命&#xff0c;主机虚拟化实现了主机资源的池化&#xff0c;可以看作是云计算的上半场。以容器为基础的云原生真正实现了应用层的弹性&#xff0c;可以看作是云计算的下半场。 图来源&#xff1a;CNCF公开资料 有人说&#xff0c…

AI+文旅|当智慧遇见风景,感受文旅新体验

今年的五一假期,公众出游热度持续升温&#xff0c;全国多地景区再现“人山人海”&#xff0c;在这样的背景下&#xff0c;促使文旅行业不断通过数字化手段&#xff0c;提升旅游体验质量、探索新的服务方式&#xff0c;AI技术的加入为旅游业带来了革命性的变化。智能导游、智能推…

nuxt3.0+scrollreveal动画插件实现页面滚动加载动画效果

项目安装 npm install scrollreveal --save 在src下创建plugins文件夹&#xff0c;写入名为scrollreveal.client.ts的文件。 import { defineNuxtPlugin } from "#app"; import scrollReveal from scrollrevealexport default defineNuxtPlugin((nuxtApp) > {l…