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

【2024年华为OD机试】 (C卷,100分)- 求字符串中所有整数的最小和(Java JS PythonC/C++)

在这里插入图片描述

一、问题描述

题目解析

题目描述

输入字符串 s,输出 s 中包含所有整数的最小和。

说明

  1. 字符串 s 只包含 a-zA-Z+-
  2. 合法的整数包括:
    • 正整数:一个或多个 0-9 组成,如 023002102
    • 负整数:负号 - 开头,数字部分由一个或多个 0-9 组成,如 -0-012-23-00023

输入描述

包含数字的字符串。

输出描述

所有整数的最小和。

用例

输入

bb1234aa

输出

10

说明


输入

bb12-34aa

输出

-31

说明
1 + 2 + (-34) = -31


题目解析

问题分析

  1. 目标
    从字符串中提取所有合法的整数(正整数和负整数),并计算它们的最小和。

  2. 关键点

    • 正整数的每位数字应单独计算,以最小化和。
    • 负整数应整体计算,以最小化和。
    • 需要处理字符串中可能出现的连续符号(如 --)和不完整负数(如 -a)。
  3. 问题转化
    通过遍历字符串,识别正负整数,并分别计算它们的贡献。


解题思路

  1. 初始化变量

    • 使用一个变量 ans 存储当前的和。
    • 使用一个容器 negative 存储负数的数字字符。
    • 使用一个标志 isNegative 记录当前是否在处理负数。
  2. 遍历字符串

    • 对于每个字符 c
      • 如果 c-
        • 如果当前正在处理负数(isNegative == true),则将 negative 中的字符拼接成负数,加入 ans,并清空 negative
        • 设置 isNegative = true,表示开始处理负数。
      • 如果 c 是数字:
        • 如果 isNegative == true,将 c 加入 negative
        • 如果 isNegative == false,将 c 转换为数字并加入 ans
      • 如果 c 是字母:
        • 如果 isNegative == true,将 negative 中的字符拼接成负数,加入 ans,并清空 negative
        • 设置 isNegative = false
  3. 处理末尾的负数

    • 遍历结束后,如果 isNegative == true,将 negative 中的字符拼接成负数,加入 ans
  4. 返回结果

    • 返回 ans 作为最终的最小和。

示例分析

输入

bb12-34aa

步骤

  1. 初始化 ans = 0negative = []isNegative = false
  2. 遍历字符串:
    • b:字母,忽略。
    • b:字母,忽略。
    • 1:数字,isNegative == falseans += 1
    • 2:数字,isNegative == falseans += 2
    • -:开始负数,isNegative = true
    • 3:数字,isNegative == truenegative.push('3')
    • 4:数字,isNegative == truenegative.push('4')
    • a:字母,isNegative == true,将 negative 拼接为 -34ans += -34,清空 negativeisNegative = false
    • a:字母,忽略。
  3. 返回 ans = 1 + 2 - 34 = -31

复杂度分析

  1. 时间复杂度

    • 遍历字符串一次,时间复杂度为 O(n),其中 n 是字符串长度。
  2. 空间复杂度

    • 使用 negative 存储负数字符,空间复杂度为 O(m),其中 m 是负数的长度。
    • 总空间复杂度为 O(m)

总结

本题的核心是通过遍历字符串,识别正负整数,并分别计算它们的贡献。关键在于:

  1. 正整数的每位数字单独计算。
  2. 负整数整体计算。
  3. 处理不完整负数和连续符号的情况。
  4. 时间复杂度优化为 O(n),适合处理较长的字符串。

二、JavaScript算法源码

这段JavaScript代码使用Node.js的readline模块来处理控制台输入,采用ACM(ACM-ICPC,即国际大学生程序设计竞赛)模式来读取多行输入。这段代码的目标是从输入字符串中提取数字,并计算它们的总和,其中以负号开头的数字将被视为负数。以下是对这段代码的详细解析和讲解:

代码解析

输入处理
const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});rl.on("line", (line) => {console.log(getResult(line));
});
  • 功能:创建一个readline接口,用于从标准输入读取数据。
  • 逻辑解释
    • readline.createInterface函数接受inputoutput流。
    • rl.on("line")事件监听器在每行输入时触发。
    • 每次读取一行,调用getResult函数进行处理,然后输出结果。
getResult函数
function getResult(s) {let isNegative = false;const negative = [];// let ans = 0;let ans = BigInt(0);for (let c of s) {if (c >= "0" && c <= "9") {if (isNegative) {negative.push(c);} else {// ans += parseInt(c);ans += BigInt(c);}} else {if (isNegative && negative.length > 0) {// ans -= parseInt(negative.join(""));ans -= BigInt(negative.join(""));negative.length = 0;}isNegative = c == "-";}}if (negative.length > 0) {// ans -= parseInt(negative.join(""));ans -= BigInt(negative.join(""));}return ans.toString();
}
  • 功能:解析输入字符串中的数字,并计算它们的总和。
  • 逻辑解释
    • isNegative用于指示当前数字是否为负。
    • negative数组用于存储当前负数的各个数字字符。
    • ans使用BigInt来存储结果,以处理可能出现的大数。
    • 遍历输入字符串,检查每个字符:
      • 如果是数字字符并且isNegativetrue,将其添加到negative数组。
      • 如果是数字字符且不是负数,直接累加到ans
      • 如果遇到非数字字符:
        • 如果存在负数,计算负数值并从ans中减去。
        • 更新isNegative状态。
    • 最后,如果negative数组中仍有数字,减去最后一个负数值。
    • 返回ans的字符串形式。

总结

  • 核心思想:使用遍历和条件判断解析输入字符串中的数字,分别处理正数和负数。
  • 使用场景:适用于需要从混合字符中提取并计算数字的场景。
  • 代码优化:使用BigInt以处理大数字,确保计算结果的精度。

这段代码的设计良好,能够有效地处理输入并计算结果。如果您有其他问题或需要进一步解释,请随时询问!

三、Java算法源码

这段Java代码的功能是从输入的字符串中提取数字并计算它们的总和,其中以负号(-)开头的数字被视为负数。使用了BigInteger来处理可能出现的大数,确保计算的精度。下面是对这段代码的详细解析及讲解:

代码解析

主函数 main
public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println(getResult(sc.nextLine()));
}
  • 功能:读取用户输入的字符串,并输出计算结果。
  • 逻辑解释
    • 使用Scanner对象sc从控制台读取输入。
    • 调用getResult方法,传入读取的字符串,并打印结果。
getResult函数
public static String getResult(String s) {boolean isNegative = false;StringBuilder negative = new StringBuilder();BigInteger ans = new BigInteger("0");for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c >= '0' && c <= '9') {if (isNegative) {negative.append(c);} else {ans = ans.add(new BigInteger(c + ""));}} else {if (isNegative && negative.length() > 0) {ans = ans.subtract(new BigInteger(negative.toString()));negative = new StringBuilder();}isNegative = c == '-';}}if (negative.length() > 0) {ans = ans.subtract(new BigInteger(negative.toString()));}return ans.toString();
}
  • 功能:从输入字符串s中解析数字,并计算结果。
  • 逻辑解释
    • isNegative:布尔变量,用于指示当前解析的数字是否为负数。
    • negative:使用StringBuilder存储当前负数的字符。
    • ans:使用BigInteger来累加结果,保证处理大数字的精度。
    • 遍历字符串s
      • 如果是数字字符:
        • 根据isNegative状态决定是否将字符添加到负数字符串或直接累加到ans
      • 如果遇到非数字字符:
        • 检查是否需要处理并减去负数。
        • 更新isNegative状态。
    • 最后,如果negative中仍有数字,减去这个负数。

总结

  • 核心思想:通过遍历和条件判断解析输入字符串中的数字,识别并处理正负数。
  • 使用场景:适用于需要从混合字符的字符串中提取并计算数字的场景。
  • 代码特性:使用BigInteger以确保计算大数的精度,StringBuilder用于高效处理字符串连接。

这段代码结构清晰,功能明确,通过合理使用Java类库的功能实现了对输入字符串的数字解析和计算。如果您有任何问题或需要进一步的解释,请随时询问!

四、Python算法源码

这段Python代码从输入字符串中提取数字并计算它们的总和,其中以负号(-)开头的数字被视为负数。以下是对这段代码的详细解析和讲解:

代码解析

输入处理
s = input()
  • 功能:读取一行输入。
  • 逻辑解释:将输入的字符串存储在变量s中,供后续处理。
getResult函数
def getResult():isNegative = Falsenegative = []ans = 0for c in s:if '0' <= c <= '9':if isNegative:negative.append(c)else:ans += int(c)else:if isNegative and len(negative) > 0:ans -= int("".join(negative))negative.clear()isNegative = c == '-'if len(negative) > 0:ans -= int("".join(negative))return ans
  • 功能:从字符串s中解析数字并计算结果。
  • 逻辑解释
    • isNegative用于指示当前数字是否为负数。
    • negative列表用于存储当前负数的数字字符。
    • ans用于累加结果。
    • 遍历字符串s中的每个字符c
      • 如果是数字字符:
        • 如果isNegativeTrue,将其添加到negative列表中。
        • 否则,直接将该数字累加到ans
      • 如果是非数字字符:
        • 如果isNegativeTruenegative列表不为空,将列表中的字符组合成一个数字,并从ans中减去该数字。
        • 重置negative列表,并更新isNegative状态为当前字符是否为-
    • 在遍历结束后,如果negative列表仍不为空,再次组合并减去最后一个负数。
    • 返回累加的结果ans

总结

  • 核心思想:通过遍历和条件判断解析输入字符串,识别并处理正负数字。
  • 使用场景:适用于从包含非数字字符的字符串中提取并计算数字的情况。
  • 代码特性:使用简单的条件结构和列表操作,逻辑直观清晰。

这段代码结构清晰,功能明确,能够有效地实现解析和计算。如果您有其他问题或需要进一步的解释,请随时询问!

五、C/C++算法源码:

C++ 版本

#include <iostream>
#include <string>
#include <cstdlib> // 包含atoi函数using namespace std;int main() {string s;getline(cin, s); // 读取整行输入bool isNegative = false; // 标记当前数字是否为负数string negative; // 存储当前负数的字符long long ans = 0; // 用于累加结果for (char c : s) { // 遍历字符串中的每个字符if (c >= '0' && c <= '9') { // 如果是数字字符if (isNegative) {negative += c; // 将字符添加到负数字符串中} else {ans += c - '0'; // 直接将数字累加到结果中}} else {if (isNegative && !negative.empty()) {ans -= stoll(negative); // 将负数转换为整数并减去negative.clear(); // 清空负数字符串}isNegative = (c == '-'); // 更新负数标记状态}}if (!negative.empty()) {ans -= stoll(negative); // 处理最后一个负数}cout << ans << endl; // 输出结果return 0;
}

C 版本

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define MAX_SIZE 10000int main() {char s[MAX_SIZE];fgets(s, MAX_SIZE, stdin); // 读取整行输入int isNegative = 0; // 标记当前数字是否为负数char negative[MAX_SIZE]; // 存储当前负数的字符int negative_size = 0; // 负数字符计数long long ans = 0; // 用于累加结果int i = 0;while (s[i] != '\0' && s[i] != '\n') { // 遍历字符串中的每个字符,直到结束符char c = s[i];if (c >= '0' && c <= '9') { // 如果是数字字符if (isNegative) {negative[negative_size++] = c; // 将字符添加到负数数组中negative[negative_size] = '\0'; // 确保字符串以空字符结尾} else {ans += c - '0'; // 直接将数字累加到结果中}} else {if (isNegative && negative_size > 0) {ans -= atol(negative); // 将负数字符串转换为整数并减去memset(negative, '\0', MAX_SIZE); // 清空负数字符串negative_size = 0; // 重置负数字符计数}isNegative = (c == '-'); // 更新负数标记状态}i++;}if (negative_size > 0) {ans -= atol(negative); // 处理最后一个负数}printf("%lld\n", ans); // 输出结果return 0;
}

代码讲解

  • 输入处理

    • C++ 使用getline读取整行输入,而C使用fgets读取。
  • 逻辑执行

    • 利用isNegative变量判断当前解析的数字是否为负。
    • 遇到数字字符时判断是否在负数上下文中,并根据情况累加到ans或追加到negative中。
    • 遇到非数字字符时,检查是否为负号,并在需要时将negative中的字符转换为负数并减去。
    • 最后处理可能剩下的负数。
  • 数字处理

    • 使用字符和整数之间的ASCII码差进行简单的数字累加。
    • C++中使用stoll函数将字符串转换为长整数,C中使用atol

通过这些步骤,代码能够有效地从输入字符串中提取并计算所有数字的总和,正确处理正负号。希望这些解释能够帮助您理解代码的工作原理!如有其他问题,请随时询问。

六、尾言

什么是华为OD?

华为OD(Outsourcing Developer,外包开发工程师)是华为针对软件开发工程师岗位的一种招聘形式,主要包括笔试、技术面试以及综合面试等环节。尤其在笔试部分,算法题的机试至关重要。

为什么刷题很重要?

  1. 机试是进入技术面的第一关:
    华为OD机试(常被称为机考)主要考察算法和编程能力。只有通过机试,才能进入后续的技术面试环节。

  2. 技术面试需要手撕代码:
    技术一面和二面通常会涉及现场编写代码或算法题。面试官会注重考察候选人的思路清晰度、代码规范性以及解决问题的能力。因此提前刷题、多练习是通过面试的重要保障。

  3. 入职后的可信考试:
    入职华为后,还需要通过“可信考试”。可信考试分为三个等级:

    • 入门级:主要考察基础算法与编程能力。
    • 工作级:更贴近实际业务需求,可能涉及复杂的算法或与工作内容相关的场景题目。
    • 专业级:最高等级,考察深层次的算法以及优化能力,与薪资直接挂钩。

刷题策略与说明:

2024年8月14日之后,华为OD机试的题库转为 E卷,由往年题库(D卷、A卷、B卷、C卷)和全新题目组成。刷题时可以参考以下策略:

  1. 关注历年真题:

    • 题库中的旧题占比较大,建议优先刷历年的A卷、B卷、C卷、D卷题目。
    • 对于每道题目,建议深度理解其解题思路、代码实现,以及相关算法的适用场景。
  2. 适应新题目:

    • E卷中包含全新题目,需要掌握全面的算法知识和一定的灵活应对能力。
    • 建议关注新的刷题平台或交流群,获取最新题目的解析和动态。
  3. 掌握常见算法:
    华为OD考试通常涉及以下算法和数据结构:

    • 排序算法(快速排序、归并排序等)
    • 动态规划(背包问题、最长公共子序列等)
    • 贪心算法
    • 栈、队列、链表的操作
    • 图论(最短路径、最小生成树等)
    • 滑动窗口、双指针算法
  4. 保持编程规范:

    • 注重代码的可读性和注释的清晰度。
    • 熟练使用常见编程语言,如C++、Java、Python等。

如何获取资源?

  1. 官方参考:

    • 华为招聘官网或相关的招聘平台会有一些参考信息。
    • 华为OD的相关公众号可能也会发布相关的刷题资料或学习资源。
  2. 加入刷题社区:

    • 找到可信的刷题交流群,与其他备考的小伙伴交流经验。
    • 关注知名的刷题网站,如LeetCode、牛客网等,这些平台上有许多华为OD的历年真题和解析。
  3. 寻找系统性的教程:

    • 学习一本经典的算法书籍,例如《算法导论》《剑指Offer》《编程之美》等。
    • 完成系统的学习课程,例如数据结构与算法的在线课程。

积极心态与持续努力:

刷题的过程可能会比较枯燥,但它能够显著提升编程能力和算法思维。无论是为了通过华为OD的招聘考试,还是为了未来的职业发展,这些积累都会成为重要的财富。

考试注意细节

  1. 本地编写代码

    • 在本地 IDE(如 VS Code、PyCharm 等)上编写、保存和调试代码,确保逻辑正确后再复制粘贴到考试页面。这样可以减少语法错误,提高代码准确性。
  2. 调整心态,保持冷静

    • 遇到提示不足或实现不确定的问题时,不必慌张,可以采用更简单或更有把握的方法替代,确保思路清晰。
  3. 输入输出完整性

    • 注意训练和考试时都需要编写完整的输入输出代码,尤其是和题目示例保持一致。完成代码后务必及时调试,确保功能符合要求。
  4. 快捷键使用

    • 删除行可用 Ctrl+D,复制、粘贴和撤销分别为 Ctrl+CCtrl+VCtrl+Z,这些可以正常使用。
    • 避免使用 Ctrl+S,以免触发浏览器的保存功能。
  5. 浏览器要求

    • 使用最新版的 Google Chrome 浏览器完成考试,确保摄像头开启并正常工作。考试期间不要切换到其他网站,以免影响考试成绩。
  6. 交卷相关

    • 答题前,务必仔细查看题目示例,避免遗漏要求。
    • 每完成一道题后,点击【保存并调试】按钮,多次保存和调试是允许的,系统会记录得分最高的一次结果。完成所有题目后,点击【提交本题型】按钮。
    • 确保在考试结束前提交试卷,避免因未保存或调试失误而丢分。
  7. 时间和分数安排

    • 总时间:150 分钟;总分:400 分。
    • 试卷结构:2 道一星难度题(每题 100 分),1 道二星难度题(200 分)。及格分为 150 分。合理分配时间,优先完成自己擅长的题目。
  8. 考试环境准备

    • 考试前请备好草稿纸和笔。考试中尽量避免离开座位,确保监控画面正常。
    • 如需上厕所,请提前规划好时间以减少中途离开监控的可能性。
  9. 技术问题处理

    • 如果考试中遇到断电、断网、死机等技术问题,可以关闭浏览器并重新打开试卷链接继续作答。
    • 出现其他问题,请第一时间联系 HR 或监考人员进行反馈。

祝你考试顺利,取得理想成绩!

相关文章:

【2024年华为OD机试】 (C卷,100分)- 求字符串中所有整数的最小和(Java JS PythonC/C++)

一、问题描述 题目解析 题目描述 输入字符串 s&#xff0c;输出 s 中包含所有整数的最小和。 说明 字符串 s 只包含 a-z、A-Z、、-。合法的整数包括&#xff1a; 正整数&#xff1a;一个或多个 0-9 组成&#xff0c;如 0、2、3、002、102。负整数&#xff1a;负号 - 开头&…...

MBox20网关:数字化工厂的智能加速器

在当今这个日新月异的数字化时代&#xff0c;企业对于生产效率、数据管理和网络安全的追求已经达到了前所未有的高度。特别是在制造业领域&#xff0c;随着“工业4.0”和“智能制造”概念的深入实践&#xff0c;数字化工厂已成为产业升级的必然趋势。在这场深刻的变革中&#x…...

NodeJS | 搭建本地/公网服务器 live-server 的使用与安装

目录 介绍 安装 live-server 安装方法 安装后的验证 环境变量问题 Node.js 环境变量未配置正确 全局安装的 live-server 路径未添加到环境变量 运行测试 默认访问主界面 访问文件 报错信息与解决 问题一&#xff1a;未知命令 问题二&#xff1a;拒绝脚本 公网配置…...

用C++实现一个基于模板的观察者设计模式

观察者模式 定义 观察者模式(Observer Pattern)是一种行为型设计模式,用于定义对象间的一对多依赖关系,使得当一个对象状态发生变化时,其所有依赖它的对象都会收到通知并自动更新。 核心概念 角色定义 Subject(被观察者): 持有观察者列表,维护观察者的注册和移除。 …...

LabVIEW开发X光图像的边缘检测

在医疗影像处理中&#xff0c;X光图像的分析对于骨折、肿瘤等病变的检测非常重要。X光图像中包含许多关键信息&#xff0c;然而&#xff0c;由于图像噪声的干扰&#xff0c;直接从图像中提取有用的特征&#xff08;如骨折的边缘&#xff09;变得非常困难。边缘检测作为图像处理…...

GitEE

版本控制 cvs svn git 等等 一、团队开发过程中的问题 1、备份【Release】 2、代码还原 3、协同修改 4、多版本文件管理 5、追溯问题代码的编写人和编写时间 6、权限控制 二、版本控制 版本控制就是维护工程蓝图标准做法&#xff0c;能追踪工程蓝图从诞生一直到定案的过程…...

Ubuntu配置python环境

前言 Ubuntu22.04自带python3&#xff0c;仅需要安装pip3即可。 也可以安装Anaconda使用虚拟环境。 本地Python环境 查看python3是否已安装&#xff1a; python3 -V若已安装python3&#xff0c;继续安装pip3&#xff1a; sudo apt install python3-pip查看pip版本&#xf…...

数据库的DML

1.insert 数据库于表创建成功后&#xff0c;需要向数据库的表中插入数据。在MySQL中可以使用insert语句向数据库已有的表中插入一行或者多行元组数据 基本语法&#xff1a; insert 语句有两种语法形式&#xff0c;分别是insert…values语句和insert…set语句 insert into&l…...

什么是SSL及SSL的工作流程

什么是 SSL SSL(Secure Sockets Layer,安全套接层)是一种保护互联网通信安全的加密协议,用于确保数据在客户端和服务器之间传输时的保密性、完整性和身份验证。它已被TLS(Transport Layer Security,传输层安全协议)取代,但很多场景仍习惯称其为SSL。 SSL/TLS 的主要目…...

RabbitMQ---消息确认和持久化

&#xff08;一&#xff09;消息确认 1.概念 生产者发送消息后&#xff0c;到达消费端会有以下情况&#xff1a; 1.消息处理成功 2.消息处理异常 如果RabbitMQ把消息发送给消费者后就把消息删除&#xff0c;那么就可能会导致&#xff0c;消息处理异常想要再获取这条消息的时…...

4 AXI USER IP

前言 使用AXI Interface封装IP&#xff0c;并使用AXI Interface实现对IP内部寄存器进行读写实现控制LED的demo&#xff0c;这个demo是非常必要的&#xff0c;因为在前面的笔记中基本都需哟PS端与PL端就行通信互相交互&#xff0c;在PL端可以通过中断的形式来告知PS端一些事情&…...

windows下安装并使用node.js

一、下载Node.js 选择对应你系统的Node.js版本下载 Node.js官网下载地址 Node.js中文网下载地址??? 这里我选择的是Windows64位系统的Node.js20.18.0&#xff08;LTS长期支持版本&#xff09;版本的.msi安装包程序 官网下载&#xff1a; 中文网下载&#xff1a; 二、安…...

【报错解决】Sql server 2022连接数据库时显示证书链是由不受信任的颁发机构颁发的

SSMS 20在连接Sql server 2022数据库时有如下报错&#xff1a; A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。 原因是尝试使…...

VSCode 的部署

一、VSCode部署 (1)、简介 vsCode 全称 Visual Studio Code&#xff0c;是微软出的一款轻量级代码编辑器&#xff0c;免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比Diff、版本管理GIT等特性&…...

淘宝、京东联盟数字ID转加密ID接口

该接口可以将主站的数字ID转换为加密ID 例如&#xff1a;123456789 转换为 xxxxxxxxxx-xxxxxxxxx PHP示例 // 接口地址&#xff1a;https://www.haodanku.com/openapi/api_detail?id103 $app_secret 你的appSecret, //替换成自己的 $x [app_id > 你的appid, //替换成…...

【物联网】keil仿真环境设置 keilV5可以适用ARM7

文章目录 一、ARM指令模拟器环境搭建1. keil软件2. Legacy Support 二、Keil仿真环境设置1. 创建一个项目2. 编译器介绍(1)arm-none-eabi-gcc(2)arm-none-linux-gnueabi-gcc(3)arm-eabi-gcc(4)grmcc(5)aarch64-linux-gnu-gcc 3. 安装编译器(1)设置调试 一、ARM指令模拟器环境搭…...

Oracle 可观测最佳实践

简介 Oracle 数据库是一种广泛使用的商业关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由甲骨文公司&#xff08;Oracle Corporation&#xff09;开发。它支持 SQL 语言&#xff0c;能够存储和管理大量数据&#xff0c;并提供高级数据管理功能&#xff0c;如数…...

上传自己的镜像到docker hub详细教程

上传自己的镜像到docker hub详细教程 本博客通B站视频一致&#xff1a; 上传自己的镜像到docker hub详细教程 1. 登录自己的hub.docker.com的账号 docker hub仓库 2. 点击Repositories&#xff0c;跳转到创建仓库页面 3. 点击Create a repository 创建repository&#xff0c…...

Python猜数小游戏

Python 实现的《猜数游戏》 介绍 本文将展示如何使用 Python 编写一个简单的《猜数游戏》。这个游戏将会生成一个1到10之间的随机数&#xff0c;用户有最多三次机会来猜测正确的数字。如果用户猜对了&#xff0c;游戏将结束并显示恭喜信息&#xff1b;如果没有猜对&#xff0…...

HackMyVM-Klim靶机的测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Getshell 3、提权 CVE-2008-0166 四、结论 一、测试环境 1、系统环境 渗透机&#xff1a;kali2021.1(192.168.159.127) 靶 机&#xff1a;debian(192.168.159.27) 注意事…...

MySQL中大量数据优化方案

文章目录 1 大量数据优化1.1 引言1.2 评估表数据体量1.2.1 表容量1.2.2 磁盘空间1.2.3 实例容量 1.3 出现问题的原因1.4 解决问题1.4.1 数据表分区1.4.1.1 简介1.4.1.2 分区限制和执行计划1.4.1.3 分区表的索引1.4.1.4 为什么分区键必须是主键的一部分1.4.1.5 操作分区1.4.1.5.…...

春秋杯-WEB

SSTI 可以看到主页那里有个登录测试之后为ssti {{4*4}} fenjing梭哈即可得到payload {{((g.pop.__globals__.__builtins__.__import__(os)).popen(cat flag)).read()}}file_copy 看到题目名字为file_copy&#xff0c; 当输入路径时会返回目标文件的大小&#xff0c; 通…...

C++多态的认识与理解

多态的定义 多态其实就是同一操作在不同的对象上可以有不同的实现方式。 多态的类型 多态分为静态多态和动态多态两种&#xff0c;而静态多态其实我们之前就了解过&#xff0c;今天主要是讲解一下动态多态。 静态多态&#xff08;编译时多态&#xff09;:静态多态其实就是在…...

improve-gantt-elastic(vue2中甘特图实现与引入)

1.前言 项目开发中需要使用甘特图展示项目实施进度&#xff0c;左侧为表格计划&#xff0c;右侧为图表进度展示。wl-gantt-mater&#xff0c;dhtmlx尝试使用过可拓展性受到限制。gantt-elastic相对简单&#xff0c;可操作性强&#xff0c;基础版本免费。 甘特图&#xff08;Gan…...

模型 笛卡尔思维

系列文章分享模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。怀疑一切&#xff0c;分析整合&#xff0c;验证真理。 1 笛卡尔思维模型的应用 1.1 笛卡尔思维模型在城市规划中的应用 背景&#xff1a;某城市计划进行新的城市规划&#xff0c;以提高城市的可持续性…...

LabVIEW桥接传感器数据采集与校准程序

该程序设计用于采集来自桥接传感器的数据&#xff0c;执行必要的设置&#xff08;如桥接配置、信号采集参数、时间与触发设置&#xff09;&#xff0c;并进行适当的标定和偏移校正&#xff0c;最终通过图表呈现采集到的数据信息。程序包括多个模块&#xff0c;用于配置通道、触…...

无人机技术架构剖析!

一、飞机平台系统 飞机平台系统是无人机飞行的主体平台&#xff0c;主要提供飞行能力和装载功能。它由机体结构、动力装置、电气设备等组成。 机体结构&#xff1a;无人机的机身是其核心结构&#xff0c;承载着其他各个组件并提供稳定性。常见的机身材料包括碳纤维、铝合金、…...

飞牛 使用docker部署Watchtower 自动更新 Docker 容器

Watchtower是一款开源的Docker容器管理工具&#xff0c;其主要功能在于自动更新运行中的Docker容器 Watchtower 支持以下功能&#xff1a; 自动拉取镜像并更新容器。 配置邮件通知。 定时执行容器更新任务。 compose搭建Watchtower 1、新建文件夹 先在任意位置创建一个 w…...

【Flink系列】4. Flink运行时架构

4. Flink运行时架构 4.1 系统架构 Flink运行时架构——Standalone会话模式为例 1&#xff09;作业管理器&#xff08;JobManager&#xff09; JobManager是一个Flink集群中任务管理和调度的核心&#xff0c;是控制应用执行的主进程。也就是说&#xff0c;每个应用都应该被…...

【机器学习实战入门】使用Pandas和OpenCV进行颜色检测

Python 颜色检测项目 今天的项目将非常有趣和令人兴奋。我们将与颜色打交道&#xff0c;并在项目过程中学习许多概念。颜色检测对于识别物体来说是必要的&#xff0c;它也被用作各种图像编辑和绘图应用的工具。 什么是颜色检测&#xff1f; 颜色检测是检测任何颜色名称的过程…...

C++ K2 (2)

提示&#xff1a;文章 文章目录 前言一、背景标准库基础知识堆栈 总结 前言 前期疑问&#xff1a; 本文目标&#xff1a; 一、背景 接上文 标准库 1、&#xff08;单选&#xff09;【STL】在以下容器中间插入一个元素&#xff0c;时间复杂度为O(1)的是&#xff08;A&#x…...

【React】静态组件动态组件

目录 静态组件动态组件创建一个构造函数(类)使用 class 实现组件**使用 function 实现类组件** 静态组件 函数组件是静态组件&#xff1a; 组件第一次渲染完毕后&#xff0c;无法基于内部的某些操作让组件更新「无法实现自更新」&#xff1b;但是&#xff0c;如果调用它的父组…...

Spring Web MVC综合案例

承接上篇文章——Spring Web MVC探秘&#xff0c;在了解Spring Web MVC背后的工作机制之后&#xff0c;我们接下来通过三个实战项目&#xff0c;来进一步巩固一下前面的知识。 一、计算器 效果展示&#xff1a;访问路径&#xff1a;http://127.0.0.1:8080/calc.html 前端代码&a…...

OpenCV相机标定与3D重建(60)用于立体校正的函数stereoRectify()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 为已校准的立体相机的每个头计算校正变换。 cv::stereoRectify 是 OpenCV 中用于立体校正的函数&#xff0c;它基于已知的相机参数和相对位置&am…...

SDL2基本的绘制流程与步骤

SDL2(Simple DirectMedia Layer 2)是一个跨平台的多媒体库,它为游戏开发和图形应用提供了一个简单的接口,允许程序直接访问音频、键盘、鼠标、硬件加速的渲染等功能。在 SDL2 中,屏幕绘制的流程通常涉及到窗口的创建、渲染目标的设置、图像的绘制、事件的处理等几个步骤。…...

计算机网络 (42)远程终端协议TELNET

前言 Telnet&#xff08;Telecommunication Network Protocol&#xff09;是一种网络协议&#xff0c;属于TCP/IP协议族&#xff0c;主要用于提供远程登录服务。 一、概述 Telnet协议是一种远程终端协议&#xff0c;它允许用户通过终端仿真器连接到远程主机&#xff0c;并在远程…...

重拾Python学习,先从把python删除开始。。。

自己折腾就是不行啊&#xff0c;屡战屡败&#xff0c;最近终于找到前辈教我 第一步 删除Python 先把前阵子折腾的WSL和VScode删掉。还是得用spyder&#xff0c;跟matlab最像&#xff0c;也最容易入手。 从VScode上搞python&#xff0c;最后安装到appdata上&#xff0c;安装插…...

51c大模型~合集106

我自己的原文哦~ https://blog.51cto.com/whaosoft/13115290 #GPT-5、 Opus 3.5为何迟迟不发 新猜想&#xff1a;已诞生&#xff0c;被蒸馏成小模型来卖 「从现在开始&#xff0c;基础模型可能在后台运行&#xff0c;让其他模型能够完成它们自己无法完成的壮举——就像一个老…...

node安装教程及环境配置

1.下载安装包 下载的网址&#xff1a;Node.js — Download Node.js 根据自己电脑系统及位数选择&#xff0c;电脑是Windows系统、64位、想下载稳定版的.msi&#xff08;LTS为长期稳定版&#xff09;这里选择windows64位.msi格式安装包。 .msi和.zip格式区别&#xff1a; .msi…...

Temp123

MapDB&#xff1a;的持久化机制&#xff0c;以及源码分析和摘取 1、spark streaming--struct streaming 基于 时间间隔 攒批 2、kafka-connect-hdfs 控制 flush.size 和 interval.ms控制 攒批 - 完全自研 攒批机制 - 使用 embeded 版 https://lxblog.com/qianwen/share?shar…...

YOLO系列代码

Test-Time Augmentation TTA (Test Time Augmentation)是指在test过程中进行数据增强。其思想非常简单&#xff0c;就是在评测阶段&#xff0c;给每个输入进行多种数据增广变换&#xff0c;将一个输入变成多个输入&#xff0c;然后再merge起来一起输出&#xff0c;形成一种ens…...

2025.1.16——一、NewsCenter

题目来源&#xff1a;攻防世界 NewsCenter 目录 一、题目 二、sqlmap解题——bp抓包存为txt文件进行爆破 step 1&#xff1a;search框内随便输入&#xff0c;进行抓包 step 2&#xff1a;抓包后&#xff0c;存到txt文件&#xff0c;进行sqlmap step 3&#xff1a;-r获取文…...

Java中的继承

引入继承 Java中使用类对实体进行描述&#xff0c;类经过实例化之后的产物对象&#xff0c;就可以用来表示现实中的实体&#xff0c;描述的事物错综复杂&#xff0c;事物之间可能会存在一些关联&#xff0c;因此我们就需要将他们共性抽取&#xff0c;面向对象的思想中提出了继…...

vue3+ts+uniapp 微信小程序(第一篇)—— 微信小程序定位授权,位置信息权限授权

文章目录 简介一、先看效果1.1 授权定位前&#xff0c;先弹出隐私协议弹框1.2 上述弹框点击同意&#xff0c;得到如下弹框1.3 点击三个点&#xff0c;然后点设置 1.4 在1.2步骤下&#xff0c;无论同意或者拒绝 二、manifest.json 文件配置三、微信公众平台配置3.1 登录进入微信…...

在Playwright中使用PO模式

1.新建项目 安装库 npm init -y npm install -D playwright npm install -D playwright/test npm install typescript ts-node types/node npx playwright install 项目目录 2.编写代码 package.json {"name": "pom_playwright","version": …...

三台 Centos7.9 中 Docker 部署 Redis 哨兵模式

三台 Centos7.9 中 Docker 部署 Redis 哨兵模式 1. 环境规划2. 配置 Docker Compose3. 配置 Redis 密码和持久化4. 配置哨兵5. 启动服务6. 验证 Redis 哨兵模式7. 注意事项 1. 环境规划 三台服务器的角色分配如下&#xff1a; IP Address容器端口角色192.168.15.128redis-mas…...

JSON数据格式的序列化和反序列化jackson针对首字母小学的字段返回序列化后第2个大写字母也变成小写的问题处理

SpringBoot类属性”第二个字母大写“反序列化问题。key第二个字母大写会被转成小写 , 这个为 jackson 的bug。 后台 : String pName; public String getPName() { return pName; } 前台 : { pname : xxx } 解决方案&#xff1a; 使用JsonProperty("pName")…...

Android wifi列表中去自身的热点

Android wifi列表中去自身的热点 一、前言 Android wifi列表中能搜索到自身的热点wifi&#xff1f; 正常手机上都不会出现这个问题&#xff1b;可能是系统底层已经做了过滤处理。 现实开发中Android设备的Wifi能搜索到自身热点也可能会存在。 比如基于两个单独的wifi双模组硬…...

Elasticsearch:Jira 连接器教程第二部分 - 6 个优化技巧

作者&#xff1a;来自 Elastic Gustavo Llermaly 将 Jira 连接到 Elasticsearch 后&#xff0c;我们现在将回顾最佳实践以升级此部署。 在本系列的第一部分中&#xff0c;我们配置了 Jira 连接器并将对象索引到 Elasticsearch 中。在第二部分中&#xff0c;我们将回顾一些最佳实…...

单线性激光扫描、多线性激光扫描?激光扫描三维重建算法环节

分类 都属于激光扫描技术&#xff0c;但它们在光源的数量和工作方式上存在一些差异。 单线性激光扫描&#xff1a; 单线性激光扫描使用单个线状光源进行扫描。光源沿一个方向移动&#xff0c;将一条直线上的目标进行扫描。这种方式适用于需要获取目标表面在一个维度上的信息的…...