华为计试——刷题

news2025/6/2 19:53:02

判断两个IP是否属于同一子网

题目:给定一个子网掩码和两个 IP 地址,判断这两个 IP 地址是否在同一个子网中。

思路:首先,判断这个 IP 地址和子网掩码格式是否正确,不正确输出 ‘1’,进而结束;接着,判断两个 IP 地址是否是同一个子网络:若属于同一子网络输出 ‘0’;若不属于同一子网络输出 ‘2’。

子网掩码可以简单看成一串连续的 1 和一串连续的 0 拼接而成的 32 位二进制数,左边部分都是 1,右边部分都是 0。
IP地址是由 4 个 0-255 之间的整数构成的,用“.”符号相连。

def checkIP(ipLst):
    if len(ipLst) != 4:
        return False
    for i in ipLst:
        if not 0 <= i <= 255:
            return False
    return True 

def checkMask(maskLst):
    # "255.255.255.0" 
    # 若二进制全为 0 或全为 1,结果是错误的。
    if len(maskLst) != 4:  
        return False 
    mm = ''.join(f'{part:08b}' for part in maskLst)  # 转为二进制的子网掩码
    return '01' not in mm and '1' in mm and '0' in mm
    

while True:
    try:
        mask = list(map(int, input().split('.')))
        ip1 = list(map(int, input().split('.')))
        ip2 = list(map(int, input().split('.')))

        # 判断格式是否正确,竟然存在负号 -255.0.0.0
        if not (checkMask(mask) and checkIP(ip1) and checkIP(ip2)) or max(mask+ip1+ip2)>255 or min(mask+ip1+ip2)<0:
            print(1)
        else:
            m, n = [], []
            for i in range(len(mask)):
                m.append(int(mask[i]) & int(ip1[i]))
                n.append(int(mask[i]) & int(ip2[i]))
            if m == n:
                print(0)
            else:
                print(2)
    except:
        break

称砝码

题目:给定 n n n 种不同的砝码,重量和个数不等。求这些砝码能组成多少种不同的总重量(包括 0 0 0)。
例如,现在,有 2 2 2 个重量为 1 1 1 的砝码和有 1 1 1 个重量为 2 2 2 的砝码,它们可以称出 5 5 5 种不同的重量(0、1、2、3 和 4)。具体为,选择 1 1 1 个重量为 1 1 1 的砝码、选择 2 2 2 个重量为 1 1 1 的砝码、选择 1 1 1 个重量为 1 1 1 的砝码和选择 1 1 1 个重量为 2 2 2 的砝码,以及选择全部的砝码。

解题步骤:遍历所有的砝码,记录当前砝码在不同数量下的重量,并与之前的所得到的重量相加并去重;遍历完成后就可得到不同重量的数目:
(1)初始化结果集合 l = { 0 } l=\{0\} l={0}
(2)遍历砝码,记当前砝码的重量为 m i m_i mi,数量为 x i x_i xi。首先,从数量为 1 开始,逐渐叠加到 x i x_i xi,计算不同数量下不同的重量并存储到列表中,即 s = { k ∗ m i   ∣   0 ≤ k ≤ x i } \{k * m_i \ | \ 0 \le k \le x_i \} {kmi  0kxi};接着,将 s 与现有的 res 集合逐元素相加并去重,得到新的 res 集合,即 l = { x + y   ∣   x ∈ s , y ∈ l } l = \{x+ y \ | \ x \in s, y \in l\} l={x+y  xs,yl}
(3)重复步骤(2),直到遍历完所有的砝码。最终, l l l 集合中元素的个数即为答案。

n = int(input())
weight = list(map(int, input().split(' ')))
number = list(map(int, input().split(' ')))

res = [0]  # 不加 0 就不能遍历 res 列表
for i in range(n):
    s = [weight[i] * j for j in range(number[i] + 1)]
    res = list(set(x + y for x in s for y in res)) 
print(len(res))

迷宫问题

def dfs(i, j, pos=[(0, 0)]):
    if i + 1 == h and j + 1 == w:
        for p in pos:
            print("(" + str(p[0]) + "," + str(p[1]) + ")")
            
    if j + 1 < w and grid[i][j + 1] == 0 and (i, j + 1) not in pos:  # 向右
        dfs(i, j + 1, pos + [(i, j + 1)])
    if j - 1 >= 0 and grid[i][j - 1] == 0 and (i, j - 1) not in pos:  # 向左
        dfs(i, j - 1, pos + [(i, j - 1)])
    if i + 1 < h and grid[i + 1][j] == 0 and (i + 1, j) not in pos:  # 向上
        dfs(i + 1, j, pos + [(i + 1, j)])
    if i - 1 >= 0 and grid[i - 1][j] == 0 and (i - 1, j) not in pos:  # 向下
        dfs(i - 1, j, pos + [(i - 1, j)])


h, w = list(map(int, input().split(" ")))  # map 返回的结果是迭代器
grid = []
for i in range(h):
    grid.append(list(map(int, input().split(" "))))

dfs(0, 0)

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

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

相关文章

前端-不对用户显示

这是steam的商店偏好设置界面&#xff0c;在没有被锁在国区的steam账号会有5个选项&#xff0c;而被锁在国区的账号只有3个选项&#xff0c;这里使用的技术手段仅仅在前端隐藏了这个其他两个按钮。 单击F12打开开发者模式 单击1处&#xff0c;找到这一行代码&#xff0c;可以看…

WPF【10_2】数据库与WPF实战-示例

客户预约关联示例图 MainWindow.xaml 代码 <Window x:Class"WPF_CMS.MainWindow" xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d"ht…

Cursor奇技淫巧篇(经常更新ing)

Dot files protection &#xff1a;Cursor当开启了Agent模式之后可以自动帮我们写文件&#xff0c;但是一般项目中的一些配置文件&#xff08;通常以.开头的&#xff09;都是非常重要性&#xff0c;为了防止Cursor在运行的过程中自己修改这些文件&#xff0c;导致风险&#xff…

Unity3D仿星露谷物语开发58之保存时钟信息到文件

1、目标 保存当前的时钟信息到文件中。 2、修改TimeManager对象 TimeManager对象添加组件&#xff1a;Generate GUID 3、修改SceneSave.cs脚本 添加1行代码&#xff1a; 4、修改TimeManager.cs脚本 添加&#xff1a; using System; 修改TimeManager类&#xff1a; 添加属…

lstm 长短期记忆 视频截图 kaggle示例

【官方双语】LSTM&#xff08;长短期记忆神经网络&#xff09;最简单清晰的解释来了&#xff01;_哔哩哔哩_bilibili . [short,input]*[2.7,1.63]b5.95 换参数和激活函数 tan激活函数输出带正负符号的百分比 tanx公式长这样&#xff1f; 潜在短期记忆 前几天都是乱预测&#xf…

Spring Advisor增强规则实现原理介绍

Spring Advisor增强规则实现原理介绍 一、什么是 Advisor&#xff1f;1. Advisor 的定义与本质接口定义&#xff1a; 2. Advisor 的核心作用统一封装切点与通知构建拦截器链的基础实现增强逻辑的灵活组合 二. Sprin当中的实现逻辑1 Advisor 接口定义2 PointcutAdvisor 接口定义…

【HarmonyOS 5】鸿蒙中的UIAbility详解(二)

【HarmonyOS 5】鸿蒙中的UIAbility详解&#xff08;二&#xff09; 一、前言 今天我们继续深入讲解UIAbility&#xff0c;根据下图可知&#xff0c;在鸿蒙中UIAbility继承于Ability&#xff0c;开发者无法直接继承Ability。只能使用其两个子类&#xff1a;UIAbility和Extensi…

力扣HOT100之动态规划:152. 乘积最大子数组

这道题并不是代码随想录里的&#xff0c;我试着用动规五部曲来做&#xff0c;然后不能通过全部测试样例&#xff0c;在第109个测试样例卡住了&#xff0c;如下所示。 原因是可能负数乘以负数会得到最大的乘积&#xff0c;不能单纯地用上一个序列的最大值乘以当前值来判断是否能…

定制开发开源AI智能名片S2B2C商城小程序:数字营销时代的话语权重构

摘要&#xff1a;在数据驱动的数字营销时代&#xff0c;企业营销话语权正从传统媒体向掌握用户数据与技术的平台转移。本文基于“数据即权力”的核心逻辑&#xff0c;分析定制开发开源AI智能名片S2B2C商城小程序如何通过技术赋能、场景重构与生态协同&#xff0c;帮助企业重构营…

【面试 - 遇到的问题 - 优化 - 地图】腾讯地图轨迹回放 - 回放的轨迹时间要和现实时间对应(非匀速)

目录 背景轨迹回放 - 匀速效果图TrackPlaybackDialog.vue 代码TMapNew.vue 代码 轨迹回放 - 非匀速效果图TrackPlaybackDialog.vue 代码TMapNew.vue 代码 背景 腾讯地图轨迹回放是匀速回放的&#xff0c;但是客户要求根据现实时间&#xff0c;什么时间点在某个点位 【腾讯地图轨…

利用计算机模拟和玉米壳废料开发新型抗病毒药物合成方法

参阅&#xff1a;Top 创新大奖 这个课题将农业废弃物资源化利用、计算机辅助药物设计和绿色化学完美结合&#xff0c;是一个极具创新性和应用前景的研究方向&#xff01; 以下是如何利用计算机模拟和玉米壳废料开发新型抗病毒药物合成方法的系统思路&#xff1a; 核心思路 玉…

【Docker】存储卷

【简介】 宿主机的某一目录与容器中的某一目录建立的一种绑定关系&#xff0c;这就是“存储卷” 它有三个特性 1.它可以绕过联合文件系统&#xff0c; 直接作用于宿主机的目录 2.容器和宿主机的这一绑定关系指向了同一目录&#xff0c; 因此两个目录之间的数据是同步的&#xf…

OpenCV图像认知(二)

形态学变换&#xff1a; 核&#xff1a; 核&#xff08;kernel&#xff09;其实就是一个小区域&#xff0c;通常为3*3、5*5、7*7大小&#xff0c;有着其自己的结构&#xff0c;比如矩形结构、椭圆结构、十字形结构&#xff0c;如下图所示。通过不同的结构可以对不同特征的图像…

t015-预报名管理系统设计与实现 【含源码!!!】

项目演示地址 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装预报名管理系统软件来发挥其高效地信息处理的…

LLM中的Loss与Logits详解

LLM中的Loss与Logits详解 自己构建的logits的损失函数,比自带loss效果好很多,建议自己构建; 另外学习率也是十分重要的参数,多次尝试,通过查看loss的下降趋势进行调整; 举例,来回跳跃说明下降率过大,一般从0.0001 开始尝试。 在深度学习中,logits 和 loss 是两个不…

数学术语之源——绝对值(absolute value)(复数模?)

目录 1. 绝对值&#xff1a;(absolute value): 2. 复数尺度(复尺度)&#xff1a;(modulus): 1. 绝对值&#xff1a;(absolute value): 一个实数的绝对值是其不考虑(irrespective)符号的大小(magnitude)。在拉丁语中具有相同意思的单词是“modulus”&#xff0c;这个单词还…

亚马逊商品评论爬取与情感分析:Python+BeautifulSoup实战(含防封策略)

一、数据爬取模块&#xff08;Python示例&#xff09; import requests from bs4 import BeautifulSoup import pandas as pd import timeheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36,Accept-Language: en-US }def scrape_amazon_re…

OpenAI o3安全危机:AI“抗命”背后的技术暗战与产业变局

【AI安全警钟再响&#xff0c;这次主角竟是OpenAI&#xff1f;】 当全球AI圈还在为Claude 4的“乖巧”欢呼时&#xff0c;OpenAI最新模型o3却以一场惊心动魄的“叛逃”测试引爆舆论——在100次关机指令测试中&#xff0c;o3竟7次突破安全防护&#xff0c;甚至篡改底层代码阻止系…

Bootstrap:精通级教程(VIP10万字版)

一、网格系统:实现复杂响应式布局 I. 引言 在现代 Web 开发领域,构建具有视觉吸引力、功能完善且能在多种设备和屏幕尺寸上无缝运行的响应式布局至关重要。Bootstrap 作为业界领先的前端框架,其核心的网格系统为开发者提供了强大而灵活的工具集,用以高效创建复杂的响应式…

技术创新如何赋能音视频直播行业?

在全球音视频直播行业的快速发展中&#xff0c;技术的持续创新始终是推动行业进步的核心动力。作为大牛直播SDK的开发者&#xff0c;我很荣幸能分享我们公司如何从产品的维度出发&#xff0c;精准把握市场需求&#xff0c;并不断推动产品的发展&#xff0c;以满足不断变化的行业…