首页 > 编程语言 >【华为OD机试】真题A卷-垃圾短信识别(JAVA)

【华为OD机试】真题A卷-垃圾短信识别(JAVA)

时间:2024-03-23 20:58:49浏览次数:45  
标签:java 短信 真题 int OD util import 机试 data

一、题目描述

【华为OD机试】真题A卷-垃圾短信识别(JAVA)

题目描述:

大众对垃圾短信深恶痛绝,希望能对垃圾短信发送者进行识别,为此,很多软件增加了垃圾短信的识别机制。经分析,发现正常用户的短信通常具备交互性,而垃圾短信往往都是大量单向的短信,按照如下规则进行垃圾短信识别: 
本题中,发送者A符合以下条件之一的,则认为A是垃圾短信发送者:

1:A发送短信的接收者中,没有发过短信给A的人数L> 5; 
2:A发送的短信数 -A接收的短信数M > 10; 
3:如果存在X,A发送给X的短信数 - A接收到X的短信数N >5.

二、输入输出

输入描述:

第一行是条目数,接下来几行是具体的条目,每个条目,是一对D,第一人数字是发送者ID,后面的数字是接收者ID,中间空格隔开,所有的ID都为 无符号整型Q,ID最大值为100: 同一个条目中,两个ID不会相同 (即不会自己给自己发消息) 最后一行为指定的ID
输出描述:
输出该ID是否为垃圾短信发送者,并且按序列输出 L M 的值(由于 N 值不唯一,不需要输出)输出均为字符串。

三、参考示例

示例1:
输入:
15
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
14 1
1 15
1
输出:
true 13 13
说明:true 表示1是垃圾短信发送者,两个数字,代表发送者1对应的L和M值。true 13 13中间以一个空格分割。注意true是字符电输出
示例2:
输入:
15
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
14 1
1 15
2
输出:
false 0 -1

四、解题思路

  1. 处理输入:使用Scanner读取输入的整数n,表示输入的数量。
  2. 处理数据:使用二维数组idPairs存储n对输入数据,同时初始化二维数组data用于统计数据。
  3. 计算相关值:遍历数据,计算L、M1、M2以及flag的值。
  4. 判断条件:根据计算出的L、M1、M2的值判断flag是否为true。
  5. 输出结果:使用System.out.println输出flag、L和M1-M2的值。

五、参考代码

/*
 * @Author: mgc
 * @Date: 2024-02-02 17:47:00
 * @LastEditors: Do not edit
 * @LastEditTime: 2024-02-02 17:48:55
 */

// import java.util.*;
// import java.util.HashMap;
// import java.util.Scanner;
// import java.util.regex.Matcher;
// import java.util.stream.Stream;
// import java.util.regex.Pattern;
// import java.util.stream.Collectors;

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        // 处理输入
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        int[][] idPairs = new int[n][2];
        int[][] data = new int[100][100];
        for (int i = 0; i < n; i++) {
            idPairs[i][0] = in.nextInt();
            idPairs[i][1] = in.nextInt();
            data[idPairs[i][0]][idPairs[i][1]] += 1;
        }

        int id = in.nextInt();

        int L = 0;
        int M1 = 0;
        int M2 = 0;
        boolean flag = false;
        for (int i = 0; i < 100; i++) {
            if (data[id][i] > 0 && data[i][id] == 0) {
                L++;
            }
            M1 += data[id][i];
            M2 += data[i][id];
            if (data[id][i] - data[i][id] > 5) {
                flag = true;
            }
        }
        if (L > 5 || M1 - M2 > 10) {
            flag = true;
        }

        System.out.println(flag + " " + L + " " + (M1 - M2));
    }
}

六、华为OD机试真题汇总目录

    【华为OD机试】真题汇总A+B+C+D券(Python实现)

    【华为OD机试】真题汇总A+B+C+D卷(JAVA实现)

    【华为OD机试】真题汇总A+B+C+D卷(C++实现)

标签:java,短信,真题,int,OD,util,import,机试,data
From: https://blog.csdn.net/u014481728/article/details/136969860

相关文章

  • 【华为OD机试】真题A卷-快速开租建站(Python)
    一、题目描述【华为OD机试】真题A卷-快速开租建站(Python)题目描述:当前IT部门支撑了子公司颗粒化业务,该部门需要实现为子公司快速开租建站的能力,建站是指在一个全新的环境部署一套IT服务。1:每个站点开站会由一系列部署任务项构成,每个任务项部署完成时间都是固定和相等的,设为1......
  • 【华为OD机试】真题A卷-快递业务站(JAVA)
    一、题目描述【华为OD机试】真题A卷-快递业务站(JAVA)题目描述:快递业务范围有N个站点,A站点与B站点可以中转快递,则认为A-B站可达,如果A-B可达,B-C可达,则A-C可达。现在给N个站点编号0、1、…n-1,用s[i][j]表示i-j是否可达,s[i][j]=1表示i-j可达,s[i][j]=0......
  • LeetCode刷题记录——day5
    1、https://leetcode.cn/problems/roman-to-integer/solutions/1/bao-li-po-jie-by-a-studentdog-s1va/?envType=study-plan-v2&envId=top-interview-150关键在于创建字典classSolution{public:intromanToInt(strings){unordered_map<string,int>m=......
  • 跳马【华为OD机试JAVA&Python&C++&JS题解】
    一.题目马是象棋(包括中国象棋和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或直着走一格,然后再斜着走一个对角线,可进可退,可越过河界,俗称“马走‘日’字。给顶m行n列的棋盘(网格图),棋盘上只有有棋子象棋中的棋子“马”,并且每个棋子有等级之分,等级为k的马可以跳1~k......
  • Podman能够替代Docker吗
    导读:参考:ExploringPodman:AMoreSecureDockerAlternative作者:MarinBezhanov网址:https://betterstack.com/community/guides/scaling-docker/podman-vs-docker/该随笔为文章部分摘要和学习笔记架构区别Docker属于CS架构(client-server),Podman利用了无守护架构(daemonless......
  • 2024华为OD统一考试(C卷)最新题库(Java & Python & C++)
    关于华为OD​华为的员工补充途径有三种,分别是校招、OD转正和社招。校招是华为唯一的正式员工入职途径,但是从近几届开始竞争非常激烈,尤其是在CV、AI、NLP等赛道上,所以对于C9等专业的学生来说,可以考虑转向一些冷门方向。​OD转正是指在华为工作满一年之后,可以根据部门OD......
  • A Survey on Large Language Model Hallucination via a Creativity Perspective
    本文是LLM系列文章,针对《ASurveyonLargeLanguageModelHallucinationviaaCreativityPerspective》的翻译。从创造力的角度考察大型语言模型的幻觉摘要1引言2LLM时代的幻觉3幻觉中隐藏的创造力4大型语言模型的创造力5利用LLM幻觉进行创造6结论和未......
  • 【LeetCode 552】学生出勤记录II
    题目描述原题链接:LeetCode.552学生出勤记录II解题思路根据题意,缺勤天数最多只有一天,迟到最多只能连续两天,可以按末尾两个字符状态作为DP数组含义的不同维度往后递推长度增长时的数量值。dp[i][j]中的i表示长度为i的出勤记录,j表示末尾字符状态:j的值含义0无......
  • 中国电子学会(CEIT)2021年03月真题C语言软件编程等级考试三级(含详细解析答案)
    中国电子学会(CEIT)考评中心历届真题(含解析答案)C语言软件编程等级考试三级2021年03月编程题五道 总分:100分一、找和为K的两个元素(20分)在一个长度为n(n<1000)的整数序列中,判断是否存在某两个元素之和为k。时间限制:1000ms内存限制:65536kb输入第一行输入......
  • ☆【前后缀】【双指针】Leetcode 42. 接雨水
    【前后缀】【双指针】Leetcode42.接雨水解法1前后缀分解解法2双指针---------------......