华为OD机试真题(Java),根据员工出勤信息,判断本次是否能获得出勤奖(100%通过+复盘思路)

news2024/11/20 15:18:42

在这里插入图片描述

一、题目描述

公司用一个字符串来标识员工的出勤信息

  1. absent:缺勤
  2. late:迟到
  3. leaveearly:早退
  4. present:正常上班

现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下:

  1. 缺勤不超过1次
  2. 没有连续的迟到/早退
  3. 任意连续7次考勤 缺勤/迟到/早退 不超过3次。

二、输入描述

用户的考勤数据字符串记录条数 >=1

输入字符串长度 <10000 ;

不存在非法输入

如:

2
present
present absent present present leaveearly present absent

三、输出描述

根据考勤数据字符串,如果能得到考勤奖输出true否则输出false,对于输出示例的结果应为true false

四、Java算法源码

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    scanner.nextLine();


    String[] records = new String[n];
    for (int i = 0; i < n; i++) {
        records[i] = scanner.nextLine();
    }

    ArrayList<String> res = new ArrayList<>(n);
    for (String record : records) {
        res.add(String.valueOf(extracted(record.split(" "))));
    }

    System.out.println(String.join(" ", res));
}

private static boolean extracted(String[] s) {
    // 1.缺勤不超过1次
    for (int j = 0; j < s.length; j++) {
        if ("absent".equals(s[j])) {
            return false;
        }
    }

    // 2.没有连续的迟到/早退
    if (s.length >= 2) {
        for (int i = 1; i < s.length; i++) {
            String yesterday = s[i - 1];
            String today = s[i];
            if (("late".equals(yesterday) || "leaveearly".equals(yesterday))
                    && ("late".equals(today) || "leaveearly".equals(today))) {
                return false;
            }
        }
    }

    // 3.任意连续7次考勤 缺勤/迟到/早退 不超过3次
    if (s.length >= 7) {
        for (int i = 0; i < s.length; i++) {
            int count = 0;
            if (i + 7 > s.length) {
                break;
            }
            for (int j = i; j < i + 7; j++) {
                String today = s[j];
                if ("absent".equals(today) || "late".equals(today) || "leaveearly".equals(today)) {
                    count++;
                    if (count >= 3) {
                        return false;
                    }
                }
            }
        }
    }
    return true;
}

五、效果展示

在这里插入图片描述

🏆本文收录于,华为OD机试2023(Java)

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

在这里插入图片描述

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

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

相关文章

闲聊之π和e到底是个啥

π和e 1. 圆周率π 耳熟能详的π&#xff0c;到底是什么&#xff0c;怎么来的&#xff1f; 圆周率π&#xff0c;圆的周长C2πr&#xff0c;其中r是圆的半径 1.1 刘徽割圆术 如图中所示&#xff0c;作出圆内的正十二边形&#xff0c;正二十四边形&#xff0c;…&#xff0c;用…

倾斜摄影三维模型OSGB格式 到OBJ 格式转换几个软件操作方法

倾斜摄影三维模型OSGB格式 到OBJ 格式转换几个软件操作方法 倾斜摄影三维模型是一种重要的三维地理信息数据&#xff0c;通常以OSGB格式保存。但在不同的三维软件中使用时&#xff0c;需要将其转换为更通用的OBJ格式。本文将介绍在技术上如何将OSGB格式的倾斜摄影三维模型转换为…

手机投屏到电脑的实用工具

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 背景说明 最近在项目开发工作中需要将手机屏幕投影到PC端&#xff0c;并通过PC端操作手机。为了满足该项开发需求&#xff0c;在项目小组中采用了Vysor作为工具。 Vysor介…

手写axios源码系列四:interceptor拦截器

文章目录 一、拦截器 interceptor1、创建 InterceptorManager.js 文件2、Axios 中实例化 InterceptorManager 类3、总结 在本系列的第一篇章节 手写axios源码系列一&#xff1a;axios核心知识点 中已经介绍过一些拦截器的基础知识&#xff0c;可知拦截器分为&#xff1a; 请求…

24从零开始学Java之如何正确地使用一维数组

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在之前的文章中&#xff0c;壹哥给大家讲解了java里的顺序结构、分支结构、循环结构等内容&#xff0…

diffusion扩散模型之hello world

以mnist图像生成样本为例&#xff0c;详细解释diffusion的每个步骤和过程 扩散模型包括两个过程&#xff1a;前向过程&#xff08;forward process&#xff09;和反向过程&#xff08;reverse process&#xff09;&#xff0c;其中前向过程又称为扩散过程&#xff08;diffusio…

Taro React组件开发(9) —— RuiCountDown 倒计时

1. 需求实现 根据传入的格式,返回倒计时的文本字段;时间格式需要自定义,需要返回对应时间的值;对毫秒级的时间进行渲染;自定义时间的样式;手动控制倒计时的开始、暂停和重置。2. 需求实现 查找网上类似组件 uView CountDown 倒计时;由于 uView CountDown 倒计时 是使用 …

深度学习 - 42.特征交叉与 SetNET、Bilinear Interaction 与 FiBiNet

目录 一.引言 二.摘要 - ABSTRACT 三.介绍 - INTRODUCTION 四.相关工作 - RELATED WORK 1.因式分解机及其变体 - Factorization Machine and Its relevant variants 2. 基于深度学习的点击率模型 - Deep Learning based CTR Models 3.SENET Module 五.FiBiNet Model 1…

【嵌入式】HC32F定时器PWM捕获+APC芯片实现模拟AD采样

目录 一 项目背景 二 原理说明 三 设计实现——定时器初始化 四 设计实现——PWM捕获 五 梳理总结 一 项目背景 目前使用了TI的ADC采样芯片ADS1018实现模拟量4-20mA/0-20mA的采样&#xff0c;原理是将外部输入的模拟量信号4-20mA&#xff0c;经由并联的两个100Ω电阻&#…

day-01 one-day projects

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大一在校生&#xff0c;web前端开发专业 &#x1f921; 个人主页&#xff1a;python学不会123 &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习…

AIGC席卷,抖快、阅文、知乎大战网文圈

配图来自Canva可画 成熟的网文市场&#xff0c;时不时进来一条鲶鱼。 经历了二十几个夏秋秋冬&#xff0c;网文市场形成了阅文、晋江、七猫、番茄等平台割据一方稳定的市场格局。后来暗自布局网文市场的知乎、抖音、快手等新玩家开始浮出水面&#xff0c;未来的市场纷争下或许…

Docker持久化方式-v和-volume的区别

docker数据的持久化一直用的是-v的方式&#xff0c;又叫Bind Mounts&#xff08;目录绑定&#xff09;&#xff0c;偶然间发现还有一种通过卷轴来实现持久化的方式&#xff0c;翻了下资料&#xff0c;整理了一下两种方式使用的场景。 -v&#xff08;Bind Mounts&#xff09; …

使用 Apache PDFBox 操作PDF文件

简介 Apache PDFBox库是一个用于处理PDF文档的开源Java工具。该项目允许创建新的PDF文档&#xff0c;操作现有PDF文档&#xff0c;并从PDF文档中提取内容。Apache PDFBox还包括几个命令行实用程序。 Apache PDFBox的主要功能如下&#xff1a; 从PDF文件中提取Unicode文本。将…

浅析提高倾斜摄影超大场景的三维模型轻量化的数据质量关键技术

浅析提高倾斜摄影超大场景的三维模型轻量化的数据质量关键技术 倾斜摄影超大场景的三维模型轻量化的质量关键技术主要包括&#xff1a; 1、保持数据精度。在进行轻量化处理时&#xff0c;必须确保数据的精度不受损失&#xff0c;否则会影响后续分析和应用方案。因此&#xff0…

接口测试不再难。这篇文章让你在5分钟内掌握接口自动化测试用例

目录 摘要&#xff1a; 一、背景 二、测试用例设计 三、测试脚本实现 四、最佳实践和技巧 总结 摘要&#xff1a; 本文介绍了接口自动化测试的重要性&#xff0c;并提供了一个简单的测试用例&#xff0c;涵盖了设计、条件、步骤和数据方面的考虑。通过使用Python中的req…

C/C++|物联网开发入门+项目实战|函数输入与输出|值传递|地址传递|连续空间的传递|嵌入式C语言高级|C语言函数的使用(1)-学习笔记(11)

文章目录 函数概述输入参数示例&#xff1a;值传递地址传递连续空间的传递 参考&#xff1a; 麦子学院-嵌入式C语言高级-C语言函数的使用 函数概述 一堆代码的集合,用一个标签去描述它 复用化&#xff0c;降低冗余度 标签 ------ 函数名 函数和数组都属于内存空间&#xff0c…

C语言system讲解

‘system’是C语言标准库中的一个函数&#xff0c;它的作用是对计算机系统进行操作&#xff0c;如创建文件夹&#xff0c;打开文件夹&#xff0c;清空屏幕等等&#xff0c;下面介绍一下常用的几个system命令 system函数原型 int system(const char* command); command是字符…

联发科的好日子结束,出货量暴跌,高通稳住阵脚并开始反击

在手机芯片市场连续3年时间顺风顺水之后&#xff0c;联发科终于迎来了高通的反击&#xff0c;特别是骁龙8G2的发布更是导致联发科在手机芯片市场的步步后退&#xff0c;推动了高通的反弹。 一、形势有利于高通 高通此前的骁龙8G1和骁龙888因出现发热问题&#xff0c;因此被誉为…

4. 线性表

4. 线性表 线性表是最基本、最简单、也是最常用的一种数据结构(逻辑结构)。一个线性表是n个具有相同特性的数据元素的有限序列。 前驱元素&#xff1a; 若A元素在B元素的前面&#xff0c;则称A为B的前驱元素 后继元素&#xff1a; 若B元素在A元素的后面&#xff0c;则称B为…

【翻译一下官方文档】之uniapp的界面弹框交互

大致分 3 种 普通提示loading框弹出选项 我个人理解就是大致知道有些什么&#xff0c;有啥功能&#xff0c;用到的时候&#xff0c;直接去用&#xff0c;不会的回来翻看文档 uni.showToast(OBJECT) 参数类型必填说明平台差异说明titleString是提示的内容&#xff0c;长度与…