【面试题】-02

news2024/11/18 5:56:50

素数之积

题目描述
RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度,数据越大,安全系数越高,给定一个32位正整数,请对其进行因数分解,找出是哪两个素数的乘积。

输入描述
一个正整数num,0 < num <= 2147483647

输出描述
如果成功找到,以单个空格分割,从小到大输出两个素数,分解失败,请输出-1, -1

用例
输入15输出3 5输入27输出-1 -1
在这里插入图片描述

import math

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            return False
    return True

def factorization(num):
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0 and is_prime(i):
            j = num // i
            if is_prime(j):
                return i, j
    return -1, -1

# 输入
num = int(input("请输入一个正整数num: "))
# 因数分解
result = factorization(num)
# 输出结果
print(result[0], result[1])

在这里插入图片描述

最大坐标值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

def calculate_max_coordinate(n, lucky_number, instructions):
    current_coordinate = 0
    max_coordinate = 0

    for instruction in instructions:
        if instruction == lucky_number:
            current_coordinate += instruction + 1
        else:
            current_coordinate += instruction

        max_coordinate = max(max_coordinate, current_coordinate)

    return max_coordinate

if __name__ == "__main__":
    try:
        # 输入指令总个数
        n = int(input().strip())

        # 输入幸运数
        lucky_number = int(input().strip())

        # 输入指令列表
        instructions = list(map(int, input().strip().split()))

        # 计算最大坐标值
        result = calculate_max_coordinate(n, lucky_number, instructions)

        # 输出最大坐标值
        print(result)
    except Exception as e:
        # 异常情况下输出:12345
        print(12345)

在这里插入图片描述

CPU算力分配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

L = input().split()
L1, L2 = int(L[0]), int(L[1])
A = list(map(int, input().split()))
B = list(map(int, input().split()))

suma = sum(A)
sumb = sum(B)
ava = int((suma + sumb) / 2)
value = abs(ava - sum(A))
A.sort()
B.sort()

if suma > sumb:
    for item in A:
        if (item - value) in B:
            print(item, item - value)
            break
else:
    for item in A:
        if (value + item) in B:
            print(item, value + item)
            break


在这里插入图片描述

寻找最富裕的小家庭

在这里插入图片描述
在这里插入图片描述

# Python题解代码
class TreeNode:
    def __init__(self, value):
        self.value = value
        self.children = []

def dfs(node, max_wealth):
    current_wealth = node.value
    for child in node.children:
        current_wealth += dfs(child, max_wealth)
    max_wealth[0] = max(max_wealth[0], current_wealth)
    return current_wealth

def main():
    N = int(input())
    wealth_values = list(map(int, input().split()))

    nodes = [TreeNode(value) for value in wealth_values]

    for _ in range(N - 1):
        parent, child = map(int, input().split())
        nodes[parent - 1].children.append(nodes[child - 1])

    max_wealth = [0]
    dfs(nodes[0], max_wealth)

    print(max_wealth[0])

if __name__ == "__main__":
    main()

查找接口成功率最优时间段

在这里插入图片描述
在这里插入图片描述

def main():
    minAverageLost = int(input())
    nums = input().split(" ")
    nums = [int(num) for num in nums]
    res = []
    length = 0
    for i in range(len(nums)):
        for j in range(i, len(nums)):
            if sum(nums[i:j+1]) <= minAverageLost * (j-i+1):
                if length > j-i+1:
                    continue
                elif length == j-i+1:
                    res.append([i, j])
                else:
                    res = [[i, j]]
                    length = j-i+1
    for i in range(len(res)):
        if i == len(res)-1:
            print(f"{res[i][0]}-{res[i][1]}")
        else:
            print(f"{res[i][0]}-{res[i][1]} ")


if __name__ == "__main__":
    main()

在这里插入图片描述

敏感字段加密

在这里插入图片描述
在这里插入图片描述

import sys

index = int(input()) # 输入命令字索引K
input = input() # 输入命令字符串S
charArray = list(input) # 将命令字符串转换为字符数组
command = "" # 当前正在解析的命令字
commandList = [] # 存储解析后的命令字列表

for i in range(len(charArray)):
    ch = charArray[i]

    if ch == '"' and ch in command: # 如果当前字符为双引号且命令字中已经包含了一个双引号
        command += '"' # 将双引号添加到命令字中
        commandList.append(command) # 将解析完毕的命令字添加到命令字列表中
        command = "" # 重置命令字
    elif '"' not in command and ch == '_': # 如果命令字不包含双引号且当前字符为下划线
        if command: # 如果命令字不为空
            commandList.append(command) # 将解析完毕的命令字添加到命令字列表中
            command = "" # 重置命令字
    elif i == len(charArray) - 1: # 如果已经到达字符串末尾
        command += ch # 将当前字符添加到命令字中
        commandList.append(command) # 将解析完毕的命令字添加到命令字列表中
        command = "" # 重置命令字
    else:
        command += ch # 将当前字符添加到命令字中

if index < 0 or index > len(commandList) - 1: # 如果命令字索引超出范围
    print("ERROR")
else:
    commandList[index] = "******" # 将指定索引的命令字替换为******
    result = []

    for item in commandList:
        result.append("_" + item) # 在命令字之前添加下划线

    result = "".join(result)
    result = result[1:] # 删除第一个下划线
    print(result)

在这里插入图片描述

虚拟游戏理财

在这里插入图片描述
在这里插入图片描述

number, N, X = map(int, input().split())
return_list = list(map(int, input().split()))
risk_list = list(map(int, input().split()))
max_cost_list = list(map(int, input().split()))

return_list.append(0)
risk_list.append(0)
max_cost_list.append(0)
number += 1

max_return = 0
max_status = ["0"] * number
max_return_risk = 0

for i in range(number):
    for j in range(i + 1, number):
        if risk_list[i] + risk_list[j] <= X:
            max_return_product_index = i if return_list[i] > return_list[j] else j
            other_return_product_index = i + j - max_return_product_index
            max_return_cost = min(N, max_cost_list[max_return_product_index])
            other_return_cost = min(N - max_return_cost, max_cost_list[other_return_product_index])
            cur_return = (
                return_list[max_return_product_index] * max_return_cost
                + return_list[other_return_product_index] * other_return_cost
            )
            if cur_return > max_return:
                max_return = cur_return
                max_return_risk = risk_list[i] + risk_list[j]
                max_dict = {
                    max_return_product_index: max_return_cost,
                    other_return_product_index: other_return_cost,
                }
                for k in range(number):
                    max_status[k] = str(max_dict.get(k, 0))
print(" ".join(max_status[:-1]))

在这里插入图片描述

IPv4地址转换成整数

在这里插入图片描述
在这里插入图片描述

import re

input = input()
ipSections = input.split("#") # 将输入的字符串按照"#"分割成4个小节

if len(ipSections) != 4: # 如果分割后的小节数量不等于4,则说明输入的IPv4地址格式不正确
  print("invalid IP") # 输出"invalid IP"表示非法IPv4地址
  exit() # 程序结束

firstSection = int(ipSections[0]) # 将第一个小节转换为整数
if firstSection < 1 or firstSection > 128: # 如果第一个小节的值不在1~128的范围内,则说明输入的IPv4地址格式不正确
  print("invalid IP") # 输出"invalid IP"表示非法IPv4地址
  exit() # 程序结束

for i in range(1, 4): # 遍历后面的3个小节
  sectionValue = int(ipSections[i]) # 将当前小节转换为整数
  if sectionValue < 0 or sectionValue > 255: # 如果当前小节的值不在0~255的范围内,则说明输入的IPv4地址格式不正确
    print("invalid IP") # 输出"invalid IP"表示非法IPv4地址
    exit() # 程序结束

hexString = "" # 创建一个字符串变量,用于拼接转换后的十六进制字符串
for i in range(4): # 遍历4个小节
  hexSection = hex(int(ipSections[i]))[2:] # 将当前小节转换为十六进制字符串
  if len(hexSection) == 1: # 如果转换后的十六进制字符串只有1位,则在前面补0
    hexSection = "0" + hexSection
  hexString += hexSection # 将转换后的十六进制字符串添加到字符串变量中

print(int(hexString, 16)) # 将拼接后的十六进制字符串转换为整数并输出

在这里插入图片描述

报文重排序

在这里插入图片描述
在这里插入图片描述

N = int(input().strip())
strings = input().strip().split()

letterMap = {}
for i in range(len(strings)):
    str = strings[i]
    if str == "":
        continue
    index = 0
    for j in range(len(str)):
        if str[j].isdigit():
            index = j
            break
    letter = str[:index]
    num = int(str[index:])
    letterMap[num] = letter

res = ""
for i in range(1, N+1):
    res += letterMap[i] + " "

print(res[:-1])

在这里插入图片描述

整数编码

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

num = int(input())
# 将待编码数字转换成二进制字符串
binaryStr = bin(num)[2:]
result = ''

# 每7位一组进行编码
for end in range(len(binaryStr), 0, -7):
    # 取出当前组需要编码的二进制字符串
    currentBinaryStr = binaryStr[max(end - 7, 0):end]
    # 判断当前字节是否为最后一个字节,设置最高位
    flag = '1' if end - 7 > 0 else '0'
    # 将当前字节转换成十进制数
    decimal = int(flag + currentBinaryStr, 2)
    # 将当前字节的十六进制字符串形式添加到结果中
    hexStr = hex(decimal)[2:].upper()
    # 如果十六进制字符串长度为1,需要在前面补0
    hexStr = '0' + hexStr if len(hexStr) == 1 else hexStr
    # 将当前字节的十六进制字符串形式添加到结果中
    result += hexStr

# 返回编码结果的十六进制字符串形式
print(result)

在这里插入图片描述

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

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

相关文章

ORACLE Linux(OEL) - Primavera P6EPPM 安装及分享

引言 继上一期发布的CentOS版环境发布之后&#xff0c;近日我制作了基于ORACLE Linux的P6虚拟机环境&#xff0c;同样里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机&#xff0c;请先与Oracle Primavera销售代表取得联系…

[C/C++]string类常用接口介绍及模拟实现string类

一&#xff1a;Cstring类的由来 在C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0c;而且底层空间需要用…

动态规划|【路径问题】|174.地下城游戏

题目 174. 地下城游戏 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健…

数字化转型导师坚鹏:科技金融政策、案例及营销创新

科技金融政策、案例及营销创新 课程背景&#xff1a; 很多银行存在以下问题&#xff1a; 不清楚科技金融有哪些利好的政策&#xff1f; 不知道科技金融有哪些成功的案例&#xff1f; 不知道科技金融如何进行营销创新&#xff1f; 课程特色&#xff1a; 以案例的方式解…

复制表

目录 复制表 将部门 30 的所有员工信息保存在 emp30 表中 将复杂查询结果创建为表 只将 emp 表的结构复制为 empnull 表 从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 复制表 严格来说&#xff0c;复制表不是复制操作&am…

[QT]自定义的QtabWidget

需求 最近有一个需求就是一个QTabWidget要求有四个tab页在左侧用于显示主页面&#xff0c;在右侧有一个关于按钮&#xff0c;点击后用于弹出窗口显示一些程序相关信息。主要是怎么实现右侧按钮 相关代码 #ifndef MYTABWIDGET_H #define MYTABWIDGET_H#include <QWidget&g…

UDP通信发送和接收 || UDP实现全双工通信

recvfrom ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); 功能: 从套接字中接收数据 参数: sockfd:套接字文件描述符 buf:存放数据空间首地址 …

康奈尔开源近10万份审稿意见,未来论文发表或将由AI定夺

大语言模型&#xff08;LLMs&#xff09;的进步为自动化论文评审开辟了新途径&#xff0c;这些模型在学术反馈领域展现出巨大潜力。自动化评审的核心优势在于其能够精准指出论文草稿的不足之处&#xff0c;助力作者优化研究。尽管已有丰富的同行评审数据&#xff0c;但现有自动…

利用websocket +定时器简易的实现一个网络聊天室

其实原理非常简单,就是客户端用户通过websoket来连接websocket服务端。然后服务端,收集每个用户发出的消息, 进而将每条用户的消息通过广播的形式推送到每个连接到服务端的客户端。从而实现用户的实时聊天。 // TODO : 我主要是讲一下实现思路。并未完善其功能。 1.后端 依赖 …

云原生(一)、linux快速上手

Linux是一种开源的Unix-like操作系统内核。它是由Linus Torvalds于1991年首次发布&#xff0c;其后经过全球的自由软件社区的持续开发和改进。Linux内核是操作系统的核心部分&#xff0c;但通常与GNU项目合作&#xff0c;以形成完整的操作系统&#xff0c;被称为Linux发行版&am…

每日OJ题_牛客WY28 跳石板(动态规划)

目录 牛客WY28 跳石板 解析代码 牛客WY28 跳石板 跳石板_牛客题霸_牛客网 解析代码 #include <iostream> #include <vector> #include <climits> #include <cmath> using namespace std;void get_div_num(int n, vector<int>& arr) {for…

基于java+springboot+vue实现的农产品智慧物流系统(文末源码+Lw)23-239

课题意义 现如今&#xff0c;信息种类变得越来越多&#xff0c;信息的容量也变得越来越大&#xff0c;这就是信息时代的标志。近些年&#xff0c;计算机科学发展得也越来越快&#xff0c;而且软件开发技术也越来越成熟&#xff0c;因此&#xff0c;在生活中的各个领域&#x…

WEBUI中的完美像素模式(Pixel Perfect)到底是什么意思

在webui的controlnet中&#xff0c;有个选项&#xff0c;叫做“完美像素模式”&#xff0c;英文为“pixel perfect mode”&#xff0c;有很多朋友在使用的时候不知道这个神奇的选项是否应该勾选上&#xff0c;所以有时候排查问题的时候&#xff0c;会反复的选择和去掉勾选&…

机器学习的基础学习笔记

黑马的学习视频 大家常说的人工智能、机器学习、深度学习其实是包含关系&#xff0c;深度学习是机器学习的一种特殊方法&#xff0c;而机器学习又是人工智能的一个子领域。 其中机器学习是使计算机系统能够通过学习经验和数据来改进性能。机器学习算法能够从数据中发现模式&am…

Igraph入门指南 5

2、graph_from系列&#xff0c;将其他R数据结构转换成图 2-1 邻接矩阵转图&#xff1a;graph_from_adjacency_matrix 可以接受Matrix包创建的稀疏矩阵作为参数 邻接矩阵中行的顺序被保留&#xff0c;并作为图中顶点的顺序。 本函数几个重要的参数&#xff1a; weighted&am…

美团 Java 开发笔试热经

Voiceover&#xff1a; 见者有缘&#xff0c;缘来好运。欢迎大家来到我的博客【CS_GUIDER】&#xff1a;&#xff08;建议收藏至浏览器书签&#xff09; https://wlei224.gitee.io &#xff08;建议访问这个&#xff0c;速度极快&#xff09; https://wl2o2o.github.io &#x…

Kafka 面试题及答案整理,最新面试题

Kafka中的Producer API是如何工作的&#xff1f; Kafka中的Producer API允许应用程序发布一流的数据到一个或多个Kafka主题。它的工作原理包括&#xff1a; 1、创建Producer实例&#xff1a; 通过配置Producer的各种属性&#xff08;如服务器地址、序列化方式等&#xff09;来…

数据结构/C++:AVL树

数据结构/C&#xff1a;AVL树 概念实现插入左单旋右单旋左右双旋右左双旋 总代码展示 概念 AVL树是一种自平衡二叉搜索树&#xff08;BST&#xff09;&#xff0c;被命名为Adelson-Velskii和Landis树&#xff0c;以它们的发明者们的名字命名。AVL树通过在插入和删除操作后进行…

嘉立创画PCB板子入门喔

PCB层叠结构 单层板&#xff0c;双层板&#xff08;就是在单层板的基础上过孔到背面&#xff09;&#xff0c;四层板&#xff0c;六层板&#xff08;四层&#xff0c;六层就是在双层板子基础上通过通孔&#xff0c;盲孔&#xff0c;埋空完成&#xff09;一般以偶数去打板。 为什…

2024年掌握人工智能的顶级课程

[AI 课程推荐] 谷歌、微软、哈佛大学, DeepLearning.AI都发布了免费的人工智能和ChatGPT的课程。 以下是 2024 年掌握人工智能的顶级课程: GOOGLE - 生成式人工智能学习路径微软- 为每个人提供生成式人工智能微软 - 人工智能初学者入门哈佛 - CS50 的 Python 人工智能简介Deep…