一、题目描述
【华为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
四、解题思路
- 处理输入:使用Scanner读取输入的整数n,表示输入的数量。
- 处理数据:使用二维数组idPairs存储n对输入数据,同时初始化二维数组data用于统计数据。
- 计算相关值:遍历数据,计算L、M1、M2以及flag的值。
- 判断条件:根据计算出的L、M1、M2的值判断flag是否为true。
- 输出结果:使用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实现)
标签:java,短信,真题,int,OD,util,import,机试,data From: https://blog.csdn.net/u014481728/article/details/136969860