当前位置: 首页 > news >正文

华为OD机试之报文回路(Java源码)

题目描述

IGMP 协议中响应报文和查询报文,是维系组播通路的两个重要报文,在一条已经建立的组播通路中两个相邻的 HOST 和 ROUTER,ROUTER 会给 HOST 发送查询报文,HOST 收到查询报文后给 ROUTER 回复一个响应报文,以维持相之间的关系,一旦这关系断裂,那么这条组播通路就异常”了。现通过某种手段,抓取到了 HOST 和 ROUTER 两者通讯的所有响应报文和查询报文,请分析该组播通路是否“正常”

输入描述

第一行抓到的报文数量C (C≤100) ,后续C行依次输入设备节点D1和D2,表示从D1到D2发送了单向的报文,D1和D2用空格隔开。

输出描述

组播通路是否“正常”,正常输出True, 异常输出False。

用例

输入5
1 2
2 3
3 2
1 2
2 1
输出True
说明
输入3
1 3
3 2
2 3
输出False
说明

具体·解析看代码

package com.bytesoc.calc;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class T70 {static class Route {int start;int end;boolean startToEnd;boolean endToStart;public boolean equals(Route obj) {return (obj.start == this.start && obj.end == this.end) || (obj.start == this.end && obj.end == this.start);}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int line = Integer.parseInt(sc.nextLine());List<Route> routes = new ArrayList<>();for (int i = 0; i < line; i++) {Route route = new Route();String str = sc.nextLine();route.start = Integer.parseInt(str.split(" ")[0]);route.end = Integer.parseInt(str.split(" ")[1]);Route objRoute = findRoute(routes, route);if (objRoute == null) {route.startToEnd = true;routes.add(route);} else {System.out.println(objRoute.end + "-" + route.start);if (objRoute.end == route.start) {objRoute.endToStart = true;}}}for (Route r : routes) {if (r.startToEnd == false || r.endToStart == false) {System.out.println("FALSE");System.exit(0);}}System.out.println("TRUE");}public static Route findRoute(List<Route> routes, Route route) {for (Route r : routes) {if (r.equals(route)) {return r;}}return null;}
}

执行结果:
在这里插入图片描述

http://www.lryc.cn/news/109743.html

相关文章:

  • 林大数据结构【2019】
  • 2023华数杯数学建模A题思路分析 - 隔热材料的结构优化控制研究
  • Linux常用命令——dos2unix命令
  • 【NLP pytorch】基于BERT_TextCNN新闻文本分类实战(项目详解)
  • 决策树与随机森林
  • Nginx 网站服务
  • Python爬虫——爬虫时如何知道是否代理ip伪装成功?
  • flink1.17 json_tuple udf 实现
  • Vue3实现6位验证码输入框,用户可以连续输入和删除
  • 如何在终端设置代理(设置jupyter notebook同理)
  • git报错:Error merging: refusing to merge unrelated histories
  • QT-QLabel显示图片,按QLabel控件的大小自动缩放
  • 【JS代码调试技巧】你必须知道的Javascript技巧汇总
  • JAVA-@Configuration注解属性proxyBeanMethods
  • 锁策略, cas 和 synchronized 优化过程总结
  • 正点原子HAL库入门1~GPIO
  • 华为VRP 系统基础配置
  • 面试热题(打家窃舍)
  • 【Deepsort】C++版本Deepsort编译(依赖opencv,eigen3)
  • Synchronized锁升级过程
  • 汽车电子功能安全
  • ARM进阶:内存屏障(DMB/DSB/ISB)的20个使用例子详解
  • Cpp学习——模板
  • HTTP 协议 版本详解
  • PHP语言基础知识(超详细)
  • Flex弹性盒子的项目属性
  • 广州银行信用卡中心:强化数字引擎安全,实现业务稳步增长
  • 【Rust日报】2023-08-03 - Polars 获约 400 万美元种子轮融资
  • 装修小程序,开启装修公司智能化服务的新时代
  • 使用PHP和Redis实现简单秒杀功能