【2024年华为OD机试】(A卷,100分)- 单词倒序(Java JS PythonC/C++)
一、问题描述
题目描述
输入单行英文句子,里面包含英文字母,空格以及,.?三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句。
输入描述
输入字符串S,S的长度 1 ≤ N ≤ 100
输出描述
输出倒序后的字符串
备注
标点符号左右的空格 ≥ 0,单词间空格>0
用例
输入
yM eman si boB.
输出
My name is Bob.
说明
无
输入
woh era uoy ? I ma enif.
输出
how are you ? I am fine.
说明
无
题目解析
从用例可以看出,单词的倒序并不难,将字符串单词转为字符数组后,reverse一下就行了。但是单词中如果有标点符号的话,则标点符号的位置不能改变,比如enif. 倒序后为 fine. 其中 . 的位置在倒序前后是一样的。
我的解题思路
从左到右遍历每一个字符,如果字符是 , . ? 或者空格,则看成一个分界符,将分界符之间的单词片段进行倒序。
二、JavaScript算法源码
以下是基于 JavaScript 的代码的中文详细注释和逻辑讲解:
代码逻辑
/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");// 创建 readline 接口,用于从控制台读取输入
const rl = readline.createInterface({input: process.stdin, // 输入流output: process.stdout, // 输出流
});// 监听输入事件,每次输入一行时触发
rl.on("line", (line) => {// 调用 getResult 函数处理输入,并输出结果console.log(getResult(line));
});// 处理输入字符串的函数
function getResult(str) {// 定义正则表达式,匹配逗号、句号、问号和空格const reg = /[\,\.\?\s]/;// 定义数组 idxs,用于存储分隔符的位置// 初始值为 -1,表示字符串的起始位置const idxs = [-1];// 遍历输入字符串,找到所有分隔符的位置for (let i = 0; i < str.length; i++) {if (reg.test(str[i])) {idxs.push(i); // 将分隔符的位置存入 idxs}}// 将字符串的结束位置(str.length)加入 idxsidxs.push(str.length);// 将字符串转换为数组,方便修改const arr = [...str];// 使用 reduce 方法遍历 idxs 数组// 对每个分隔符之间的子串进行反转idxs.reduce((p, c) => {// p 是前一个分隔符的位置,c 是当前分隔符的位置let l = p + 1; // 子串的起始位置let r = c - 1; // 子串的结束位置// 反转子串while (l < r) {let tmp = arr[l];arr[l] = arr[r];arr[r] = tmp;l++;r--;}// 返回当前分隔符的位置,作为下一次 reduce 的 preturn c;});// 将数组重新拼接为字符串并返回return arr.join("");
}
代码讲解
-
输入处理:
- 使用
readline
模块从控制台读取输入。 - 每次输入一行时,触发
line
事件,调用getResult
函数处理输入。
- 使用
-
分隔符匹配:
- 定义正则表达式
reg
,用于匹配逗号、句号、问号和空格。 - 遍历输入字符串,找到所有分隔符的位置,并存入数组
idxs
。
- 定义正则表达式
-
字符串反转:
- 将输入字符串转换为数组
arr
,方便修改。 - 使用
reduce
方法遍历idxs
数组,对每个分隔符之间的子串进行反转。 - 反转逻辑:
- 定义子串的起始位置
l
和结束位置r
。 - 使用双指针法交换字符,直到
l
和r
相遇。
- 定义子串的起始位置
- 将输入字符串转换为数组
-
结果输出:
- 将反转后的数组
arr
重新拼接为字符串并返回。
- 将反转后的数组
示例解析
输入
Hello, world! This is a test.
运行结果
olleH, dlrow! sihT si a tset.
- 解析:
- 分隔符包括逗号、空格和句号。
- 反转每个分隔符之间的子串:
Hello
→olleH
world
→dlrow
This
→sihT
is
→si
a
→a
test
→tset
总结
- 该代码通过正则表达式匹配分隔符,并使用双指针法反转每个分隔符之间的子串。
- 适用于需要对字符串中特定分隔符之间的子串进行反转的场景。
- 代码逻辑清晰,注释详细,便于理解和扩展。
更精简的解法,可以利用String.prototype.repalce的正则匹配出输入字符串中各个英文子串,将这些英文子串替换为倒序子串,关于repalce的正则匹配用法请看:
String.prototype.repalce的正则匹配
/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});rl.on("line", (line) => {console.log(getResult(line));
});function getResult(str) {return str.replace(/[a-zA-Z]+/g, (s) => [...s].reverse().join(""));
}
如果有其他问题,欢迎随时提问!
三、Java算法源码
以下是基于 Java 的代码的中文详细注释和逻辑讲解:
代码逻辑
import java.util.ArrayList;
import java.util.Scanner;public class Main {public static void main(String[] args) {// 创建 Scanner 对象,用于从控制台读取输入Scanner sc = new Scanner(System.in);// 读取一行输入String str = sc.nextLine();// 调用 getResult 方法处理输入,并输出结果System.out.println(getResult(str));}// 处理输入字符串的方法public static String getResult(String str) {// 定义 ArrayList,用于存储分隔符的位置ArrayList<Integer> idxs = new ArrayList<>();// 初始值为 -1,表示字符串的起始位置idxs.add(-1);// 遍历输入字符串,找到所有分隔符的位置for (int i = 0; i < str.length(); i++) {// 判断当前字符是否为分隔符(逗号、句号、问号或空格)if (",.? ".indexOf(str.charAt(i)) != -1) {idxs.add(i); // 将分隔符的位置存入 idxs}}// 将字符串的结束位置(str.length())加入 idxsidxs.add(str.length());// 将字符串转换为字符数组,方便修改char[] chars = str.toCharArray();// 遍历 idxs 数组,对每个分隔符之间的子串进行反转for (int i = 0; i < idxs.size() - 1; i++) {// 获取当前分隔符之间的子串的起始位置和结束位置int l = idxs.get(i) + 1; // 子串的起始位置int r = idxs.get(i + 1) - 1; // 子串的结束位置// 使用双指针法反转子串while (l < r) {char tmp = chars[l];chars[l] = chars[r];chars[r] = tmp;l++;r--;}}// 将字符数组重新拼接为字符串StringBuilder sb = new StringBuilder();for (char c : chars) {sb.append(c);}// 返回结果字符串return sb.toString();}
}
代码讲解
-
输入处理:
- 使用
Scanner
从控制台读取一行输入。 - 调用
getResult
方法处理输入字符串。
- 使用
-
分隔符匹配:
- 定义
ArrayList<Integer>
存储分隔符的位置。 - 初始值为
-1
,表示字符串的起始位置。 - 遍历输入字符串,找到所有分隔符(逗号、句号、问号或空格)的位置,并存入
idxs
。
- 定义
-
字符串反转:
- 将输入字符串转换为字符数组
chars
,方便修改。 - 遍历
idxs
数组,对每个分隔符之间的子串进行反转。 - 反转逻辑:
- 定义子串的起始位置
l
和结束位置r
。 - 使用双指针法交换字符,直到
l
和r
相遇。
- 定义子串的起始位置
- 将输入字符串转换为字符数组
-
结果输出:
- 使用
StringBuilder
将字符数组重新拼接为字符串。 - 返回结果字符串。
- 使用
示例解析
输入
Hello, world! This is a test.
运行结果
olleH, dlrow! sihT si a tset.
- 解析:
- 分隔符包括逗号、空格和句号。
- 反转每个分隔符之间的子串:
Hello
→olleH
world
→dlrow
This
→sihT
is
→si
a
→a
test
→tset
总结
- 该代码通过遍历字符串找到分隔符的位置,并使用双指针法反转每个分隔符之间的子串。
- 适用于需要对字符串中特定分隔符之间的子串进行反转的场景。
- 代码逻辑清晰,注释详细,便于理解和扩展。
如果有其他问题,欢迎随时提问!
四、Python算法源码
以下是基于 Python 的代码的中文详细注释和逻辑讲解:
代码逻辑
原始代码
import re# 从控制台读取输入
s = input()# 定义正则表达式,匹配逗号、句号、问号和空格
p = re.compile(r"[\\,\\.\\?\s]")# 定义数组 idxs,用于存储分隔符的位置
# 初始值为 -1,表示字符串的起始位置
idxs = [-1]# 遍历输入字符串,找到所有分隔符的位置
for i in range(len(s)):if p.match(s[i]):idxs.append(i)# 将字符串的结束位置(len(s))加入 idxs
idxs.append(len(s))# 将字符串转换为列表,方便修改
arr = [c for c in s]# 遍历 idxs 数组,对每个分隔符之间的子串进行反转
for i in range(len(idxs) - 1):l = idxs[i] + 1 # 子串的起始位置r = idxs[i + 1] - 1 # 子串的结束位置# 使用双指针法反转子串while l < r:arr[l], arr[r] = arr[r], arr[l]l += 1r -= 1# 将列表重新拼接为字符串并输出
print("".join(arr))
优化后的代码
import re# 从控制台读取输入
s = input()# 定义替换函数 rep,用于反转匹配的子串
def rep(matched):# 将匹配的子串转换为列表并反转tmp = list(matched.group())tmp.reverse()# 将反转后的列表重新拼接为字符串并返回return "".join(tmp)# 使用 re.sub 方法,将匹配的子串替换为反转后的结果
# 正则表达式 r"[a-zA-Z]+" 匹配一个或多个字母
print(re.sub(r"[a-zA-Z]+", rep, s))
代码讲解
原始代码
-
输入处理:
- 使用
input()
从控制台读取输入字符串。
- 使用
-
分隔符匹配:
- 定义正则表达式
p
,用于匹配逗号、句号、问号和空格。 - 遍历输入字符串,找到所有分隔符的位置,并存入数组
idxs
。
- 定义正则表达式
-
字符串反转:
- 将输入字符串转换为列表
arr
,方便修改。 - 遍历
idxs
数组,对每个分隔符之间的子串进行反转。 - 反转逻辑:
- 定义子串的起始位置
l
和结束位置r
。 - 使用双指针法交换字符,直到
l
和r
相遇。
- 定义子串的起始位置
- 将输入字符串转换为列表
-
结果输出:
- 将反转后的列表
arr
重新拼接为字符串并输出。
- 将反转后的列表
优化后的代码
-
输入处理:
- 使用
input()
从控制台读取输入字符串。
- 使用
-
替换函数:
- 定义函数
rep
,用于处理正则匹配的结果。 - 将匹配的子串转换为列表并反转,然后重新拼接为字符串。
- 定义函数
-
正则替换:
- 使用
re.sub
方法,将匹配的子串替换为反转后的结果。 - 正则表达式
r"[a-zA-Z]+"
匹配一个或多个字母。
- 使用
-
结果输出:
- 直接输出替换后的字符串。
示例解析
输入
Hello, world! This is a test.
原始代码运行结果
olleH, dlrow! sihT si a tset.
- 解析:
- 分隔符包括逗号、空格和句号。
- 反转每个分隔符之间的子串:
Hello
→olleH
world
→dlrow
This
→sihT
is
→si
a
→a
test
→tset
优化后代码运行结果
olleH, dlrow! sihT si a tset.
- 解析:
- 正则表达式
r"[a-zA-Z]+"
匹配所有字母子串。 - 对每个匹配的子串进行反转:
Hello
→olleH
world
→dlrow
This
→sihT
is
→si
a
→a
test
→tset
- 正则表达式
总结
- 原始代码通过遍历字符串找到分隔符的位置,并使用双指针法反转每个分隔符之间的子串。
- 优化后的代码利用
re.sub
方法和正则表达式,直接匹配字母子串并反转,代码更简洁高效。 - 两种方法均适用于需要对字符串中特定子串进行反转的场景。
如果有其他问题,欢迎随时提问!
五、C/C++算法源码:
以下是基于 C++ 的代码实现,并附上中文详细注释和逻辑讲解:
C++ 代码实现
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <regex>using namespace std;// 定义替换函数 rep,用于反转匹配的子串
string rep(const smatch& matched) {string tmp = matched.str(); // 获取匹配的子串reverse(tmp.begin(), tmp.end()); // 反转子串return tmp; // 返回反转后的子串
}int main() {// 从控制台读取输入string s;getline(cin, s);// 定义正则表达式,匹配一个或多个字母regex pattern("[a-zA-Z]+");// 使用 regex_replace 方法,将匹配的子串替换为反转后的结果// 第三个参数 rep 是一个函数,用于处理匹配的子串string result = regex_replace(s, pattern, rep);// 输出结果cout << result << endl;return 0;
}
代码讲解
1. 输入处理
- 使用
getline(cin, s)
从控制台读取一行输入,并存储到字符串s
中。
2. 正则表达式
- 定义正则表达式
pattern
,用于匹配一个或多个字母([a-zA-Z]+
)。
3. 替换函数
- 定义函数
rep
,用于处理正则匹配的结果。- 参数
matched
是smatch
类型,表示正则匹配的结果。 - 使用
matched.str()
获取匹配的子串。 - 使用
reverse(tmp.begin(), tmp.end())
反转子串。 - 返回反转后的子串。
- 参数
4. 正则替换
- 使用
regex_replace
方法,将输入字符串s
中所有匹配的子串替换为反转后的结果。- 第一个参数是输入字符串
s
。 - 第二个参数是正则表达式
pattern
。 - 第三个参数是替换函数
rep
。
- 第一个参数是输入字符串
5. 结果输出
- 输出替换后的字符串
result
。
示例解析
输入
Hello, world! This is a test.
运行结果
olleH, dlrow! sihT si a tset.
- 解析:
- 正则表达式
[a-zA-Z]+
匹配所有字母子串。 - 对每个匹配的子串进行反转:
Hello
→olleH
world
→dlrow
This
→sihT
is
→si
a
→a
test
→tset
- 正则表达式
总结
- 该代码利用 C++ 的正则表达式库
<regex>
,实现了对输入字符串中所有字母子串的反转。 - 通过
regex_replace
方法和自定义替换函数rep
,代码简洁高效。 - 适用于需要对字符串中特定子串进行反转的场景。
如果有其他问题,欢迎随时提问!
相关文章:
【2024年华为OD机试】(A卷,100分)- 单词倒序(Java JS PythonC/C++)
一、问题描述 题目描述 输入单行英文句子,里面包含英文字母,空格以及,.?三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句。 输入描述 输入字符串S,S的长度 1 ≤ N ≤ 100 输出描述 输出倒序后的字…...
芯片:CPU和GPU有什么区别?
CPU(中央处理器)和GPU(图形处理单元)是计算机系统中两种非常重要的处理器,它们各自有不同的设计理念、架构特点以及应用领域。下面是它们之间的一些主要差异: 1. 设计目的与应用领域 CPU:设计…...
springboot整合mysql
1.首先在pom.xml中添加依赖: <!-- MySQL Driver --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><!-- Druid连接池 -->…...
复合机器人助力手机壳cnc加工向自动化升级
在当今竞争激烈的制造业领域,如何提高生产效率、降低成本、提升产品质量,成为众多企业面临的关键挑战。尤其是在手机壳 CNC 加工这一细分行业,随着市场需求的持续增长,对生产效能的要求愈发严苛。而复合机器人的出现,正…...
深入浅出负载均衡:理解其原理并选择最适合你的实现方式
负载均衡是一种在多个计算资源(如服务器、CPU核心、网络链接等)之间分配工作负载的技术,旨在优化资源利用率、提高系统吞吐量和降低响应时间。负载均衡的实现方式多种多样,以下是几种常见的实现方式: 1. 硬件负载均衡&…...
征程 6X release版本内核模块安全加载
1.概述 征程 6X 系统在 release 编译时支持内核模块签名验证,仅加载使用正确密钥进行数字签名的内核模块。禁止加载未签名的内核模块或使用错误密钥签名的内核模块,客户需要替换成自己的 key 进行签名。 模块签名启用后,Linux 内核将仅加载…...
uni-app的学习
uni-app 有着跨平台支持、丰富的插件和生态系统、高性能、集成开发工具HBuilderX的配合使用。允许使用者仅通过一套代码发布到多平台使用。 uni-app官网 uni-app 是一个适合开发跨平台移动应用和小程序的框架,能够大幅提高开发效率。 一、了解 1.1 工具准备 从Git…...
国产信创实践(国能磐石服务器操作系统CEOS +东方通TongHttpServer)
替换介绍: 国能磐石服务器操作系统CEOS 对标 Linux 服务器操作系统(Ubuntu, CentOS) 东方通TongHttpServer 对标 Nginx 负载均衡Web服务器 第一步: 服务器安装CEOS映像文件,可直接安装,本文采用使用VMware …...
前端实时显示当前在线人数的实现
实时显示当前在线人数的实现 本文档提供了在网页上实时显示当前在线人数的多种实现方法,包括使用 WebSocket 实现实时更新和轮询方式实现非实时更新。 方法一:使用 WebSocket 实现实时更新 服务器端设置 通过 Node.js 和 WebSocket 库(如 …...
为AI聊天工具添加一个知识系统 之27 支持边缘计算设备的资源存储库及管理器
本文问题 现在我们回到 ONE/TWO/TREE 的资源存储库 的设计--用来指导 足以 支持 本项目(为AI聊天工具增加一套知识系统)的 核心能力 “语言处理” 中 最高难度系数的“自然语言处理” 中最具挑战性的“含糊性” 问题的解决。--因为足以解决 自然语言中最…...
继续坚持与共勉
经过期末考试后,又要开始学习啦。 当时一直在刷算法题就很少写博客了,现在要继续坚持写博客,将每天对于题的感悟记录下来。 同时我将会在学习Linux操作系统,对于过去学习的内容进行回顾!! 在此ÿ…...
PHP的扩展Imagick的安装
windows下的安装 下载:Imagick扩展 PECL :: Package :: imagick 3.7.0 for Windows 下载:ghostscript(PDF提取图片时用到,不处理PDF可以不安装) Ghostscript : Downloads 安装扩展 Imagick解压后&…...
【2024年华为OD机试】 (A卷,100分)- 租车骑绿岛(Java JS PythonC/C++)
一、问题描述 题目描述 部门组织绿岛骑行团建活动。租用公共双人自行车,每辆自行车最多坐两人,最大载重 M。 给出部门每个人的体重,请问最多需要租用多少双人自行车。 输入描述 第一行两个数字 m、n,分别代表自行车限重&#…...
Solidity入门: 函数
函数 Solidity语言的函数非常灵活,可以进行各种复杂操作。在本教程中,我们将会概述函数的基础概念,并通过一些示例演示如何使用函数。 我们先看一下 Solidity 中函数的形式: function <function name>(<parameter types>) {in…...
1、docker概念和基本使用命令
docker概念 微服务:不再是以完整的物理机为基础的服务软件,而是借助于宿主机的性能。以小量的形式,单独部署的应用。 docker:是一个开源的应用容器引擎,基于go语言开发的,使用时apache2.0的协议。docker是…...
【Python】深入Python元类:动态生成类与对象的艺术
在Python中,元类(Metaclass)是一个强大且高级的特性,允许开发者在类创建时控制其行为与属性。通过元类,开发者可以动态生成类和对象,实现自定义的类行为,进而增强代码的灵活性和可扩展性。本文将…...
数字孪生可视化在各个行业的应用场景
数字孪生技术,作为新一代信息技术的集大成者,正在深刻改变着我们对物理世界的认知和管理方式。本文将探讨数字孪生可视化在不同行业的应用场景,以及它们如何赋能行业数字化转型。 1. 智慧城市与交通 在智慧城市领域,数字孪生技术…...
CES Asia 2025科技盛宴,AI智能体成焦点
2025第七届亚洲消费电子技术展(CES Asia赛逸展)将在北京拉开帷幕,AI智能体有望成为展会的核心亮点。 深圳市人工智能行业协会发文表示全力支持CES Asia 2025(赛逸展),称其为人工智能领域的创新发展提供了强…...
【第04阶段-机器学习深度学习篇-1-深度学习基础-深度学习介绍】
1 深度学习概念 深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的算法。 2 深度学习发展 其概念由著名科学家Geoffrey Hinton等人…...
android framework.jar 在应用中使用
在开发APP中,有时会使用系统提供的framework.jar 来替代 android.jar, 在gradle中配置如下: 放置framework.jar 依赖配置 3 优先级配置 gradle.projectsEvaluated {tasks.withType(JavaCompile) {Set<File> fileSet options.bootstrapClasspat…...
带格式 pdf 翻译
支持 openAI 接口,国内 deepseek 接口兼容 openAI 接口, deepseek api 又非常便宜 https://pdf2zh.com/ https://github.com/Byaidu/PDFMathTranslate...
Flutter项目适配鸿蒙
Flutter项目适配鸿蒙 前言Flutter项目适配鸿蒙新工程直接支持ohos构建新项目编译运行 适配已有的Flutter项目 前言 目前市面上使用Flutter技术站的app不在少数,对于Flutter的项目,可能更多的是想直接兼容Harmonyos,而不是直接在重新开发一个…...
轻量自高斯注意力机制LSGAttention模型详解及代码复现
模型背景 近年来,卷积神经网络(CNN)在高光谱图像分类领域取得了显著进展。然而,CNN面临 长距离关系建模 和 计算成本 增加的挑战。为解决这些问题,研究人员提出了基于 轻量自高斯注意(Light Self-Gaussian-Attention, LSGA) 机制的视觉转换器(Vision Transformer, VIT),旨…...
vue事件对象$event
事件参数可以获取event对象和通过事件传递数据 获取 event 对象 <template><h1>Hello world</h1><button click"addCount">Add</button><p>{{ count }}</p> </template> <script>export default{data(){ret…...
PyCharm文档管理
背景:使用PyCharmgit做文档管理 需求:需要PyCharm自动识别docx/xslx/vsdx等文件类型,并在PyCharm内点击文档时唤起系统内关联应用(如word、excel、visio) 设置步骤: 1、file -》 settings -》file types 2、在Files opened i…...
Windows下调试Dify相关组件(2)--后端Api
1.部署依赖的服务(代码最外层的docker目录) 1.1 将middleware.env.example复制,并改名为middleware.env。 1.2 查看docker-compose.middleware.yaml,有5个服务 db:postgres数据库。 redis:redis缓存。 sa…...
Flask----前后端不分离-登录
文章目录 扩展模块flask-wtf 的简单使用定义用户数据模型flask-login完成用户登录 扩展模块 flask-sqlalchmy,连接数据库flask-login,处理用户的登录,认证flask-session,会话保持,默认对用户数据加密,存储…...
Group3r:一款针对活动目录组策略安全的漏洞检测工具
关于Group3r Group3r是一款针对活动目录组策略安全的漏洞检测工具,可以帮助广大安全研究人员迅速枚举目标AD组策略中的相关配置,并识别其中的潜在安全威胁。 Group3r专为红蓝队研究人员和渗透测试人员设计,该工具可以通过将 LDAP 与域控制器…...
ElasticSearch 认识和安装ES
文章目录 一、为什么学ElasticSearch?1.ElasticSearch 简介2.ElasticSearch 与传统数据库的对比3.ElasticSearch 应用场景4.ElasticSearch 技术特点5.ElasticSearch 市场表现6.ElasticSearch 的发展 二、认识和安装ES1.认识 Elasticsearch(简称 ES)2.El…...
CNN Test Data
由于数据量过大,打不开了 搞一组小的吧。收工睡觉 https://download.csdn.net/download/spencer_tseng/90256048...
git 转移文件夹
打开终端或命令行界面:首先,确保你的电脑上安装了 Git,并打开终端或命令行界面。 导航到你的仓库目录:使用 cd 命令来切换到包含你想要移动文件夹的仓库的目录。 cd /path/to/your/repository使用 git mv 命令移动文件夹&#x…...
计算机网络学习
网络安全:前端开发者必知:Web安全威胁——XSS与CSRF攻击及其防范-CSDN博客 三次握手四次挥手:前端网络---三次握手四次挥手_前端三次握手-CSDN博客 http协议和https协议的区别:前端网络---http协议和https协议的区别-CSDN博客 …...
Android车机DIY开发之学习篇(二)编译Kernel以正点原子为例
Android车机DIY开发之学习篇(二)编译Kernel以正点原子为例 1.代码在/kernel-5.10文件夹下 2.在kernel-5.10目录下执行如下命令编译 : 编译之前,需要将 clang 导出到 PATH 环境变量: 如果是 Android12 执行下面这条命令 export PATH../pr…...
Java线程的异常处理:确保线程安全运行
哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互…...
vite5.x配置https
旧版的vite直接在config里面配置https:true即可,新版的麻烦一些。 1.准备工作 需要安装openssl 下载地址:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 找到合适的版本安装,配置好环境变量&#x…...
地下苹果(马铃薯)怎么破局?
地下苹果(马铃薯)怎么破局? 原创萨辣米哎青年杂说youth 地下苹果(马铃薯)怎么破局?https://mp.weixin.qq.com/s/zU-9pnVWxDn72D6yx5CViA 1.前言 马铃薯是重要的粮菜兼用和工业原料作物,由于其…...
ceph fs status 输出详解
ceph fs status 命令用于显示 Ceph 文件系统的状态信息,其中各列的含义如下: RANK:元数据服务器(MDS)的等级或标识符。 STATE:MDS 的当前状态,例如 active(活跃)、stan…...
phpenc加密程序源码
免费扩展加密程序,类似于sg11加密,支持单个PHP(免费)文件以及批量PHP文件(ZIP压缩包格式)源码加密的保护平台,加密后的源码文件保持原有代码结构,可以跨平台运行,可以运行…...
深入探秘 ZooKeeper:架构、设计、角色与 ZNode 全解析 前言
1.ZooKeeper 分布式锁怎么实现的? ZooKeeper 是一个高效的分布式协调服务,常用于实现分布式系统中的配置管理、命名服务、分布式锁等。下面简要介绍如何使用 ZooKeeper 实现分布式锁。 分布式锁的特性 在讨论如何实现之前,先了解分布式锁应…...
计算机图形学【绘制立方体和正六边形】
工具介绍 OpenGL:一个跨语言的图形API,用于渲染2D和3D图形。它提供了绘制图形所需的底层功能。 GLUT:OpenGL的一个工具库,简化了窗口创建、输入处理和其他与图形环境相关的任务。 使用的函数 1. glClear(GL_COLOR_BUFFER_BIT |…...
日志模块和Plus模块升级以及问题修复
文章目录 1.common-log4j2-starter1.目录2.LogAspectProperties.java 日志切面配置3.TraceProperties.java 链路追踪配置4.Log4j2AutoConfiguration.java 条件注入链路追踪过滤器 2.common-mybatis-plus-starter1.目录2.引入依赖3.SqlBeautyProperties.java 读取sql.beauty相关…...
【Bug】报错信息:Required request body is missing(包含五种详细解决方案)
大家好,我是摇光~ 遇到“Required request body is missing”错误通常意味着服务器期望在HTTP请求中包含一个请求体(body),但是实际上并没有收到。 例如: 当你在使用网页或应用程序的后台(比如一个网站或手…...
Ceph分布式存储集群,不仅仅是一个简单的对象存储解决方案
Ceph 作为 OpenStack 的存储后端 块存储(Cinder 后端) Ceph 的 RBD(RADOS Block Device)模块作为 OpenStack Cinder 服务的后端,为虚拟机提供块级别的存储资源。RBD 支持快照、克隆和恢复等功能,能够满足虚…...
6.business english--updates
能够运用一系列表达方式来提供和接收最新情况,并讨论后续行动事项。 be able to use a range of expression to give and receive updates and to discuss follow-up action items in a typical week 在平常的一周里 The company promises that the quality will …...
Lianwei 安全周报|2024.1.7
以下是本周「Lianwei周报」,我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件,保证大家不错过本周的每一个重点! 政策/标准/指南最新动态 01 国家发改委等三部门印发《国家数据基础设施建设指引》 国家数据基础设施是从数据…...
加速科技荣获“浙江省企业研究院”认定
近日,浙江省经济和信息化厅公布“2024年认定(备案)省级企业研发机构名单”。经过多轮严格评审和公示,加速科技荣获“省企业研究院”认定。这是加速科技继获国家级专精特新“小巨人”企业认定荣誉后的又一里程碑。 “浙江省企业研究…...
嵌入式C语言:什么是指针?
目录 一、指针的基本概念 1.1. 定义指针 1.2. 赋值给指针 1.3. 解引用指针 1.4. 指针运算 1.5. 空指针 1.6. 函数参数 1.7. 数组和指针 1.8. 示例代码 二、指针在内存中的表示 2.1. 内存地址存储 2.2. 内存模型 2.3. 指针与硬件交互 2.4. 示例代码 三 、指针的重…...
Python 管理 GitHub Secrets 和 Workflows
在现代软件开发中,自动化配置管理变得越来越重要。本文将介绍如何使用 Python 脚本来管理 GitHub 仓库的 Secrets 和 Workflows,这对于需要频繁更新配置或管理多个仓库的团队来说尤为有用。我们将分三个部分进行讨论:设置 GitHub 权限、创建 GitHub Secret 和创建 GitHub Wo…...
wireshark排除私接小路由
1.wireshark打开,发现了可疑地址,合法的地址段DHCP是192.168.100.0段的,打开后查看发现可疑地址段,分别是,192.168.0.1 192.168.1.174 192.168.1.1。查找到它对应的MAC地址。 ip.src192.168.1.1 2.通过show fdb p…...
Vue3初学之Element-plus
用于快速的上手开发,以做项目为导向,所以借用element-plus插件 发现淘宝的镜像有时候也是很慢的,还可以换个 npm config set registry https://registry.npmmirror.com 安装element-plus npm install element-plus --save 查看安装是否成…...