2026华为OD机考真题附答案-准备生日礼物

题目描述:

小明在一个充满人文关怀的公司上班,公司每个月都要为该月生日的同事送一份生日小礼物,该事项由小明负责,请帮助小明统计

某一月份应该准备多少礼物,重复录入的员工生日以最后一次录入结果为准,请不要重复统计,避免浪费。

输入描述

参数1,要发放礼物的月份,取值1到12。

参数2,员工列表。

参数3,员工生日日期列表,该列表和员工列表中的数据对应存在一一对应关系,长度一致。

输出描述

该月份要准备的礼品个数。

补充说明

1.小明公司的员工人数不超过100人。

2.员工姓名是字母和数字的组合,姓名长度大于0,小于16字节。

3.日期录入格式统一采用Year/Month/Day,Year 长度为4,Month和Day长度为1到2,系统保证录入

日期为合法日期。

4.不考虑同名多位员工的情况,名字一致即可认为是同一员工(在生产系统会通过工号区分,本系统简化处理)。

示例1

输入

5

Alice Bob Charlie David Eve Frank Grace Helen

1985/5/10 1990/10/11 1995/10/11 2000/11/10 2005/05/01 2010/10/13 2015/10/14 2020/5/2

输出

3

说明

在5 月份出生的员工有 3人,因此返回为 3。

示例2

输入

10

Alice Bob Charlie David Eve Frank Grace Helen

1985/05/10 1990/10/11 1995/10/11 2000/11/10 2005/10/13 2010/10/13 2015/10/14 2020/10/15

输出

6

说明

10 月份出生的员工有 6人,因此返回 6。

package org.example;

import java.util.HashMap;

import java.util.Map;

public class 准备生日礼物 {

复制代码
public static int countPeople(int month, String employees, String birthdays) {
    String[] birthdayArray = birthdays.split(" ");
    String[] employeeArray = employees.split(" ");
    // HashMap去重 key= 姓名,value = 生日 重复覆盖
    Map<String, String> empMap = new HashMap<>();
    for (int i = 0; i < employees.length(); i++) {
        empMap.put(employeeArray[i],birthdayArray[i]);
    }
    int res = 0;
    for (String s : empMap.values()) {
        String[] mon = s.split("/");
        if (Integer.parseInt(mon[1]) == month) {
            res++;
        }
    }
    return res;
}

}

相关推荐
GetcharZp1 天前
玩转 Linux 机器视觉:手把手带你搞定 Ubuntu 下海康工业相机 C++ SDK
后端
星星在线1 天前
MusicFree:一个「All in One」的个人音乐服务器,让听歌回归简单
前端·后端
IT_陈寒1 天前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
demo007x1 天前
Docling 文档转换以及技术架构分析
前端·后端·程序员
NE_STOP1 天前
Vide Coding--AI编程工具的选择
java
袋鱼不重1 天前
我的神奇同事,AI 用多了居然写了个 Open In Codex
前端·后端·ai编程
用户8356290780511 天前
使用 Python 操作 Word 内容控件
后端·python
像我这样帅的人丶你还1 天前
啥? 前端也要会干Java?🛵🛵🛵
后端
Hommy881 天前
【剪映小助手】添加贴纸接口(Add Sticker)
后端·github·剪映小助手·视频剪辑自动化·剪映api
码云数智-园园1 天前
C++20 Modules 模块详解
java·开发语言·spring