华为OD机试之考勤信息(Java源码)

news2024/12/23 6:46:59

考勤信息

题目描述

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

  • absent:缺勤
  • late:迟到
  • leaveearly:早退
  • present:正常上班

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

  • 缺勤不超过一次;
  • 没有连续的迟到/早退;
  • 任意连续7次考勤,缺勤/迟到/早退不超过3次。

如:

2
present
present absent present present leaveearly present absent

输入描述

用户的考勤数据字符串

  • 记录条数 >= 1;
  • 输入字符串长度 < 10000;
  • 不存在非法输入;

输出描述

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

true false

用例

输入2
present
present present
输出true
true
说明
输入2
present
present absent present present leaveearly present absent
输出true
false
说明

源码和解析
解析:

这个题做好逻辑判断就行了

示例代码:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

//考勤问题
public class T38 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = Integer.parseInt(sc.nextLine());// 记录条数
		for (int i = 0; i < num; i++) {
			String input = sc.nextLine();
			String kqArr[] = input.split(" ");
			// 一、缺勤不超过1次
			int queqinCoun = 0; // 不超过1次
			for (String kq : kqArr) {
				if (kq.equals("absent")) {
					queqinCoun++;
					if (queqinCoun > 1) {
						break;
					}
				}
			}
			if (queqinCoun > 1) {
				System.out.println("false");
				break;
			}
			// 二、没有连续的迟到/早退 迟到和早退 也是连续的 相当于一天干了俩个事情 也算
			List<String> cList = new ArrayList<String>();
			cList.add("late");
			cList.add("leaveearly");
			boolean isLateOrLeaveEarly = false;
			for (int j = 1; j < kqArr.length; j++) {
				if (cList.contains(kqArr[j]) && cList.contains(kqArr[j - 1])) {
					// 出现连续的迟到/早退
					isLateOrLeaveEarly = true;
					break;
				}
			}
			if (isLateOrLeaveEarly) {
				System.out.println("false");
				break;
			}
			// 三、任意连续的7次考勤 ,缺勤/迟到/早退不超过3次 即 缺勤次数+迟到次数+早退次数<=3
			// 双指针做法
			int start = 0;
			int end = kqArr.length >= 7 ? 6 : kqArr.length;
			int count = 0;// 违规次数
			cList.add("absent");
			// 判断连个指针之间的初始值内是否已经满足false情况
			for (int k = start; k < end; k++) {
				if (cList.contains(kqArr[k])) {
					count++;
				}
			}
			if (count > 3) {
				System.out.println("false");
				break;
			}
			while (end < kqArr.length - 1) {
				// 指针右侧
				end++;
				if (cList.contains(kqArr[end])) {
					count++;// 加进来的是满足的
				}
				if (cList.contains(kqArr[start])) {
					count--;// 移出去的也是满足的
				}
				start++; // 左指针也需要右移1位 保持两个指针之间能取得连续7位
				if (count > 3) {
					break;
				}
			}
			if (count > 3) {
				System.out.println("false");
				break;
			}
			System.out.println("true");
		}
	}
}

运行示意图:
在这里插入图片描述

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

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

相关文章

Python编程环境搭建:Windows中如何安装Python

在 Windows 上安装 Python 和安装普通软件一样简单&#xff0c;下载安装包以后猛击“下一步”即可。 Python 安装包下载地址&#xff1a;https://www.python.org/downloads/ 打开该链接&#xff0c;可以看到有两个版本的 Python&#xff0c;分别是 Python 3.x 和 Python 2.x&…

Nginx网站服务详解(编译安装及系统服务添加)

目录 一、Nginx的相关知识 1&#xff09;Nginx的简介 Nginx&#xff1a; Apache&#xff1a; 2&#xff09;Apache与Nginx的区别 Nginx对比Apache的优势&#xff1a; apache相对于nginx的优点 &#xff1a; 3&#xff09;Nginx的进程 Nginx有两个进程&#xff1a;…

Java的volatile

介绍 volatile volatile 关键字可以说是 Java 虚拟机提供的最轻量级的同步机制&#xff0c;但是它并不容易被正确、完整地理解&#xff0c;以至于许多程序员都习惯去避免使用它&#xff0c;遇到需要处理多线程数据竞争问题的时候一律使用 synchronized 来进行同步。了解 volat…

Flutter:功能型组件(2)- 弹出菜单、弹出提示

弹出菜单 PopupMenuButton 使用PopupMenuButton&#xff0c;点击时弹出菜单 Center(child: PopupMenuButton<String>(initialValue: Math, // 初始值itemBuilder: (context) {// 子项构造函数return <PopupMenuEntry<String>>[const PopupMenuItem(value:…

svg教程-初始svg

第一章 认识svg 简单来说&#xff1a; 位图&#xff1a;放大会失真图像边缘有锯齿&#xff1b;是由像素点组成&#xff1b;前端的 Canvas 就是位图效果。矢量图&#xff1a;放大不会失真&#xff1b;使用 XML 描述图形。 我在 知乎 上找了一个图对说明一下。 左边是位图&am…

华为开发者大会2023官宣,华为云在憋什么大招?

文丨智能相对论 作者丨沈浪 华为云也坐不住了。 在此之前&#xff0c;百度、阿里、商汤、科大讯飞等国内科技厂商以及微软、谷歌等国际巨头都已经发布了自家的大模型新品以及AIGC等相关应用。而华为云手握盘古大模型&#xff0c;却始终按兵不动&#xff0c;迟迟没有正式进场…

实验篇(7.2) 02. 部署物理实验环境(上)❀ 远程访问

【简介】当大家了解到并不需要很高的代价就可以动手做FortiOS 7.2的实验&#xff0c;很多人愿意尝试使用FortiGate防火墙硬件来学习最验难掌握的远程访问部分&#xff0c;这里我们将学习现场部署一套物理实验环境&#xff0c;让大家看到&#xff0c;在一张桌子上&#xff0c;在…

chatgpt赋能python:Python中大小写转换的方法

Python中大小写转换的方法 在Python编程中&#xff0c;经常需要对文本进行大小写转换的操作。本文将介绍Python中字符串大小写转换的方法&#xff0c;以及如何使用它们来优化你的代码。 方法一&#xff1a;使用upper()和lower()方法 Python中&#xff0c;可以使用字符串对象…

数据可视化开发的加入让办公工作更智能!

想要实现办公自动化、智能化&#xff0c;就需要选择灵活、简便、易操作的数据可视化开发平台全力助力。因为这是专注于办公高效发展的开发平台&#xff0c;是企业级的应用低代码开发平台&#xff0c;用于职场中可以实现APP、CRM、OA、ERP、WMS各类管理系统开发。可以说&#xf…

ACL 2022:Graph Pre-training for AMR Parsing and Generation

Graph Pre-training for AMR Parsing and Generation 论文&#xff1a;https://aclanthology.org/2022.acl-long.415/ 代码&#xff1a;https://github.com/goodbai-nlp/AMRBART 期刊/会议&#xff1a;ACL 2022 摘要 抽象语义表示&#xff08;AMR&#xff09;以图形结构突出…

2022年天府杯全国大学生数学建模竞赛A题仪器故障智能诊断技术解题全过程文档及程序

2022年天府杯全国大学生数学建模竞赛 A题 仪器故障智能诊断技术 原题再现&#xff1a; 问题背景&#xff1a;   仪器设备故障诊断技术是一种了解和掌握机器在运行过程的状态&#xff0c;确定其整体或局部正常或异常&#xff0c;早期发现故障及其原因&#xff0c;并能预报故…

关于高三经典励志文章精选

关于高三经典励志文章精选 篇一 人要心有所向 曾经有幸被母校邀请回校做演讲。那一次的演讲结束后&#xff0c;接到学弟学妹最多的问题是&#xff1a;为什么我的大学生活很充实&#xff0c;自己也很努力&#xff0c;可毕业之后依旧觉得很迷茫? 我觉得关于迷茫的解答最后都能归…

git创建本地分支的应用实践

场景 我们希望能够不影响本地master分支的情况下自己单独开发一个功能&#xff0c;等开发完成后再合并到master分支中 操作 创建本地分支sortdev&#xff0c;并且切换到该分支上&#xff1a; git checkout -b sortdev git branch -vv 可以查看到本地master分支追踪的是远程…

【学习记录】二次曲线、二次曲面、对偶二次曲线、对偶二次曲面

一、二次曲线与对偶二次曲线 最近在看基于椭球体的物体SLAM过程中&#xff0c;经常涉及到椭球体的空间几何知识&#xff0c;这里先补充一下一些空间几何相关的基础&#xff0c;参考链接。 椭球体本身属于二次曲面的一种&#xff0c;二次曲面是对空间形状的描述&#xff0c;属于…

每天一道面试题之如何将字符串反转?

在java中&#xff0c;我们可以使用StringBuilder或者StringBuffer类的reverse()方法来实现对字符串的反转。 在讲述实现方法之前&#xff0c;首先我们先来介绍一下StringBuilder和StringBuffer是什么&#xff1f;在实际开发中&#xff0c;会有大量的字符串的拼接,但java中的字…

pytorch 训练EfficientnetV2

文章目录 前言一、数据摆放二、训练二、测试三、训练和测试结果总结 前言 前不久用pytorch复现了efficientnetv2的网络结构&#xff0c;但是后边自己一直有其他事情再做&#xff0c;所以训练部分的文章拖到了现在。关于Efficientnet的部分文章链接可参考如下&#xff1a; Effic…

一百二十、Kettle——用kettle把Hive数据同步到ClickHouse

一、目标 用kettle把hive数据同步到clickhouse&#xff0c;简单运行、直接全量导入数据 工具版本&#xff1a;kettle&#xff1a;8.2 Hive:3.1.2 ClickHouse21.9.5.16 二、前提 &#xff08;一&#xff09;kettle连上hive &#xff08;二&#xff09;kettle连上cli…

10. 数据结构之树

前言 之前介绍了顺序表的数据结构&#xff0c;包含队列&#xff0c;栈等&#xff0c;这种结构都是一对一的&#xff0c;但是现实生活中&#xff0c;经常会遇见一对多的数据结构&#xff0c;比如族谱&#xff0c;部门机构等&#xff0c;此时我们需要一个更复杂的数据结构来表示…

分布式系统概念和设计——(事务与并发控制)

分布式系统概念和设计 事务与并发控制 简介 事务的目标是在多个事务访问对象以及服务器面临崩溃的情况下&#xff0c;保证所有由服务器管理的对象始终维持在一个一致的状态上 事务是由客户定义的针对服务器对象的一组操作&#xff0c;组成为一个不可分割的单元&#xff0c;由…

Unity | HDRP高清渲染管线学习笔记:HDRP配置文件(HDRP Asset)

目录 一、Frame Settings&#xff08;帧设置&#xff09; 二、Volume 三、HDRP配置文件、帧设置和Volume之间的关系 四、HDRP配置文件 1.Rendering &#xff08;1&#xff09;Color Buffer Format&#xff08;颜色缓存格式&#xff09; &#xff08;2&#xff09;Lit Sh…