【2024年华为OD机试】 (C卷,100分)- 括号匹配(Java JS PythonC/C++)
一、问题描述
题目描述
给定一个字符串,里边可能包含“()”、“[]”、“{}”三种括号,请编写程序检查该字符串中的括号是否成对出现,且嵌套关系正确。
若括号成对出现且嵌套关系正确,或该字符串中无括号字符,输出:true
;
若未正确使用括号字符,输出:false
。
实现时,无需考虑非法输入。
输入描述
无
输出描述
无
用例
用例 1
输入:
(1+2)/(0.5+1)
输出:
true
解题思路
-
使用栈:
- 使用一个栈来跟踪未匹配的左括号。
- 遍历字符串,对于每个字符:
- 如果是左括号(
(
,[
,{
),将其压入栈中。 - 如果是右括号(
)
,]
,}
),检查栈顶是否有对应的左括号:- 如果有,弹出栈顶的左括号。
- 如果没有,返回
false
。
- 如果是左括号(
- 遍历结束后,如果栈为空,说明所有括号都正确匹配,返回
true
。 - 如果栈不为空,说明有未匹配的左括号,返回
false
。
-
特殊情况:
- 如果字符串中没有括号字符,直接返回
true
。
- 如果字符串中没有括号字符,直接返回
详细步骤
-
读取输入:
- 从标准输入读取一个字符串。
-
初始化栈:
- 创建一个空栈
stack
,用于存储未匹配的左括号。
- 创建一个空栈
-
遍历字符串:
- 遍历字符串中的每个字符
char
:- 如果
char
是左括号((
,[
,{
),将其压入栈中。 - 如果
char
是右括号()
,]
,}
):- 检查栈顶是否有对应的左括号:
- 如果有,弹出栈顶的左括号。
- 如果没有,返回
false
。
- 检查栈顶是否有对应的左括号:
- 如果
- 遍历字符串中的每个字符
-
检查栈是否为空:
- 遍历结束后,如果栈为空,返回
true
。 - 如果栈不为空,返回
false
。
- 遍历结束后,如果栈为空,返回
用例解释
用例 1
- 输入:
(1+2)/(0.5+1)
- 输出:
true
解释:
- 遍历字符串:
- 遇到
(
,压入栈中。 - 遇到
)
,检查栈顶是否有(
,有则弹出。 - 遇到
(
,压入栈中。 - 遇到
)
,检查栈顶是否有(
,有则弹出。
- 遇到
- 遍历结束后,栈为空,说明所有括号都正确匹配,返回
true
。
通过上述步骤,我们可以高效地检查字符串中的括号是否成对出现且嵌套关系正确。这种方法的时间复杂度为 O(n)
,其中 n
是字符串的长度。
二、JavaScript算法源码
以下是 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(line) {// 定义正则表达式,匹配非括号字符const regExp = /[^\(\)\[\]\{\}]/g;// 去除非括号字符line = line.replace(regExp, "");// 定义括号映射关系const map = {")": "(", // 右圆括号对应左圆括号"]": "[", // 右方括号对应左方括号"}": "{", // 右花括号对应左花括号};// 使用栈来检查括号是否匹配const stack = [];// 遍历处理后的字符串for (let c of line) {// 如果栈不为空,且当前字符是右括号if (stack.length && map[c]) {// 检查栈顶元素是否是对应的左括号if (stack.at(-1) === map[c]) {stack.pop(); // 匹配成功,弹出栈顶元素continue;} else {return false; // 匹配失败,返回 false}}// 将当前字符压入栈中stack.push(c);}// 如果栈为空,说明所有括号都匹配成功return stack.length == 0;
}
代码逻辑讲解
1. 输入获取
- 使用
readline
模块从控制台读取输入。 - 监听
line
事件,当用户输入一行内容时,调用getResult
函数处理。
2. 算法入口
- 步骤 1:定义正则表达式
regExp
,用于匹配非括号字符。- 正则表达式
/[^\(\)\[\]\{\}]/g
表示匹配所有非括号字符。
- 正则表达式
- 步骤 2:使用
replace
方法去除非括号字符。- 例如,输入
"a(b{c}d)e"
,处理后得到"({})"
。
- 例如,输入
- 步骤 3:定义括号映射关系
map
。- 右括号作为键,左括号作为值。
- 步骤 4:使用栈
stack
来检查括号是否匹配。- 遍历处理后的字符串:
- 如果当前字符是右括号,检查栈顶元素是否是对应的左括号。
- 如果匹配成功,弹出栈顶元素。
- 如果匹配失败,返回
false
。
- 如果当前字符是左括号,直接压入栈中。
- 如果当前字符是右括号,检查栈顶元素是否是对应的左括号。
- 遍历处理后的字符串:
- 步骤 5:遍历结束后,检查栈是否为空。
- 如果栈为空,说明所有括号都匹配成功,返回
true
。 - 如果栈不为空,说明有未匹配的括号,返回
false
。
- 如果栈为空,说明所有括号都匹配成功,返回
示例运行
输入
a(b{c}d)e
处理步骤
- 去除非括号字符,得到
"({})"
。 - 遍历字符串:
- 遇到
"("
,压入栈中,栈为["("]
。 - 遇到
"{"
,压入栈中,栈为["(", "{"]
。 - 遇到
"}"
,检查栈顶元素"{"
,匹配成功,弹出栈顶元素,栈为["("]
。 - 遇到
")"
,检查栈顶元素"("
,匹配成功,弹出栈顶元素,栈为[]
。
- 遇到
- 遍历结束,栈为空,返回
true
。
输出
true
总结
- 功能:检查输入字符串中的括号是否匹配。
- 核心逻辑:
- 去除非括号字符。
- 使用栈检查括号是否匹配。
- 适用场景:需要检查括号匹配的场景,例如代码语法检查。
- 注意事项:
- 输入字符串可能包含非括号字符,需要先去除。
- 栈的使用是解决括号匹配问题的经典方法。
如果有其他问题,欢迎随时提问!
三、Java算法源码
以下是 Java 代码 的详细中文注释和逻辑讲解:
Java 代码
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Scanner;public class Main {// 输入获取public static void main(String[] args) {Scanner sc = new Scanner(System.in); // 创建 Scanner 对象,用于从控制台读取输入String s = sc.nextLine(); // 读取一行输入System.out.println(getResult(s)); // 调用 getResult 方法处理输入,并输出结果}// 算法入口public static boolean getResult(String s) {// 去除非括号字符s = s.replaceAll("[^\\(\\)\\[\\]\\{\\}]", ""); // 使用正则表达式去除非括号字符// 定义括号映射关系HashMap<Character, Character> map = new HashMap<>();map.put(')', '('); // 右圆括号对应左圆括号map.put(']', '['); // 右方括号对应左方括号map.put('}', '{'); // 右花括号对应左花括号// 使用栈来检查括号是否匹配LinkedList<Character> stack = new LinkedList<>();// 遍历处理后的字符串for (int i = 0; i < s.length(); i++) {char c = s.charAt(i); // 获取当前字符// 如果栈不为空,且当前字符是右括号if (stack.size() > 0 && map.containsKey(c)) {// 检查栈顶元素是否是对应的左括号if (stack.getLast() == map.get(c)) {stack.removeLast(); // 匹配成功,弹出栈顶元素continue;} else {return false; // 匹配失败,返回 false}}// 将当前字符压入栈中stack.add(c);}// 如果栈为空,说明所有括号都匹配成功return stack.size() == 0;}
}
代码逻辑讲解
1. 输入获取
- 使用
Scanner
类从控制台读取输入。 - 调用
sc.nextLine()
读取一行输入,并将其存储在字符串s
中。
2. 算法入口
- 步骤 1:使用正则表达式去除非括号字符。
- 正则表达式
[^\\(\\)\\[\\]\\{\\}]
表示匹配所有非括号字符。 - 例如,输入
"a(b{c}d)e"
,处理后得到"({})"
。
- 正则表达式
- 步骤 2:定义括号映射关系
map
。- 使用
HashMap
存储右括号和左括号的对应关系。
- 使用
- 步骤 3:使用栈
stack
来检查括号是否匹配。- 遍历处理后的字符串:
- 如果当前字符是右括号,检查栈顶元素是否是对应的左括号。
- 如果匹配成功,弹出栈顶元素。
- 如果匹配失败,返回
false
。
- 如果当前字符是左括号,直接压入栈中。
- 如果当前字符是右括号,检查栈顶元素是否是对应的左括号。
- 遍历处理后的字符串:
- 步骤 4:遍历结束后,检查栈是否为空。
- 如果栈为空,说明所有括号都匹配成功,返回
true
。 - 如果栈不为空,说明有未匹配的括号,返回
false
。
- 如果栈为空,说明所有括号都匹配成功,返回
示例运行
输入
a(b{c}d)e
处理步骤
- 去除非括号字符,得到
"({})"
。 - 遍历字符串:
- 遇到
"("
,压入栈中,栈为["("]
。 - 遇到
"{"
,压入栈中,栈为["(", "{"]
。 - 遇到
"}"
,检查栈顶元素"{"
,匹配成功,弹出栈顶元素,栈为["("]
。 - 遇到
")"
,检查栈顶元素"("
,匹配成功,弹出栈顶元素,栈为[]
。
- 遇到
- 遍历结束,栈为空,返回
true
。
输出
true
总结
- 功能:检查输入字符串中的括号是否匹配。
- 核心逻辑:
- 去除非括号字符。
- 使用栈检查括号是否匹配。
- 适用场景:需要检查括号匹配的场景,例如代码语法检查。
- 注意事项:
- 输入字符串可能包含非括号字符,需要先去除。
- 栈的使用是解决括号匹配问题的经典方法。
如果有其他问题,欢迎随时提问!
四、Python算法源码
以下是 Python 代码 的详细中文注释和逻辑讲解:
Python 代码
import re # 导入正则表达式模块# 输入获取
s = input() # 从控制台读取一行输入# 算法入口
def getResult(s):# 去除非括号字符s = re.sub(r"[^\(\)\[\]\{\}]", "", s) # 使用正则表达式去除非括号字符# 定义括号映射关系map = {")": "(", # 右圆括号对应左圆括号"]": "[", # 右方括号对应左方括号"}": "{", # 右花括号对应左花括号}# 使用栈来检查括号是否匹配stack = []# 遍历处理后的字符串for i in range(len(s)):c = s[i] # 获取当前字符# 如果栈不为空,且当前字符是右括号if len(stack) > 0 and map.get(c) is not None:# 检查栈顶元素是否是对应的左括号if stack[-1] == map[c]:stack.pop() # 匹配成功,弹出栈顶元素continueelse:return False # 匹配失败,返回 False# 将当前字符压入栈中stack.append(c)# 如果栈为空,说明所有括号都匹配成功return len(stack) == 0# 算法调用
print(str(getResult(s)).lower()) # 调用 getResult 方法处理输入,并输出结果(转换为小写)
代码逻辑讲解
1. 输入获取
- 使用
input()
函数从控制台读取一行输入,并将其存储在变量s
中。
2. 算法入口
- 步骤 1:使用正则表达式去除非括号字符。
- 正则表达式
r"[^\(\)\[\]\{\}]"
表示匹配所有非括号字符。 - 例如,输入
"a(b{c}d)e"
,处理后得到"({})"
。
- 正则表达式
- 步骤 2:定义括号映射关系
map
。- 使用字典存储右括号和左括号的对应关系。
- 步骤 3:使用栈
stack
来检查括号是否匹配。- 遍历处理后的字符串:
- 如果当前字符是右括号,检查栈顶元素是否是对应的左括号。
- 如果匹配成功,弹出栈顶元素。
- 如果匹配失败,返回
False
。
- 如果当前字符是左括号,直接压入栈中。
- 如果当前字符是右括号,检查栈顶元素是否是对应的左括号。
- 遍历处理后的字符串:
- 步骤 4:遍历结束后,检查栈是否为空。
- 如果栈为空,说明所有括号都匹配成功,返回
True
。 - 如果栈不为空,说明有未匹配的括号,返回
False
。
- 如果栈为空,说明所有括号都匹配成功,返回
3. 算法调用
- 调用
getResult(s)
方法处理输入,并将结果转换为字符串后输出(转换为小写)。
示例运行
输入
a(b{c}d)e
处理步骤
- 去除非括号字符,得到
"({})"
。 - 遍历字符串:
- 遇到
"("
,压入栈中,栈为["("]
。 - 遇到
"{"
,压入栈中,栈为["(", "{"]
。 - 遇到
"}"
,检查栈顶元素"{"
,匹配成功,弹出栈顶元素,栈为["("]
。 - 遇到
")"
,检查栈顶元素"("
,匹配成功,弹出栈顶元素,栈为[]
。
- 遇到
- 遍历结束,栈为空,返回
True
。
输出
true
总结
- 功能:检查输入字符串中的括号是否匹配。
- 核心逻辑:
- 去除非括号字符。
- 使用栈检查括号是否匹配。
- 适用场景:需要检查括号匹配的场景,例如代码语法检查。
- 注意事项:
- 输入字符串可能包含非括号字符,需要先去除。
- 栈的使用是解决括号匹配问题的经典方法。
如果有其他问题,欢迎随时提问!
五、C/C++算法源码:
以下是 C++ 代码 和 C 语言代码 的实现,并附带详细的中文注释和逻辑讲解。
C++ 代码
#include <iostream>
#include <stack>
#include <unordered_map>
#include <string>
using namespace std;// 算法入口
bool getResult(string s) {// 去除非括号字符string filtered;for (char c : s) {if (c == '(' || c == ')' || c == '[' || c == ']' || c == '{' || c == '}') {filtered += c; // 只保留括号字符}}// 定义括号映射关系unordered_map<char, char> map = {{')', '('},{']', '['},{'}', '{'}};// 使用栈来检查括号是否匹配stack<char> stack;// 遍历处理后的字符串for (char c : filtered) {// 如果栈不为空,且当前字符是右括号if (!stack.empty() && map.count(c)) {// 检查栈顶元素是否是对应的左括号if (stack.top() == map[c]) {stack.pop(); // 匹配成功,弹出栈顶元素continue;} else {return false; // 匹配失败,返回 false}}// 将当前字符压入栈中stack.push(c);}// 如果栈为空,说明所有括号都匹配成功return stack.empty();
}int main() {// 输入获取string s;getline(cin, s); // 读取一行输入// 算法调用cout << boolalpha << getResult(s) << endl; // 输出结果(boolalpha 用于输出 true/false)return 0;
}
C++ 代码逻辑讲解
1. 输入获取
- 使用
getline(cin, s)
从控制台读取一行输入,并将其存储在字符串s
中。
2. 算法入口
- 步骤 1:去除非括号字符。
- 遍历字符串
s
,只保留括号字符((
,)
,[
,]
,{
,}
)。 - 将过滤后的字符存储在
filtered
字符串中。
- 遍历字符串
- 步骤 2:定义括号映射关系
map
。- 使用
unordered_map
存储右括号和左括号的对应关系。
- 使用
- 步骤 3:使用栈
stack
来检查括号是否匹配。- 遍历处理后的字符串
filtered
:- 如果当前字符是右括号,检查栈顶元素是否是对应的左括号。
- 如果匹配成功,弹出栈顶元素。
- 如果匹配失败,返回
false
。
- 如果当前字符是左括号,直接压入栈中。
- 如果当前字符是右括号,检查栈顶元素是否是对应的左括号。
- 遍历处理后的字符串
- 步骤 4:遍历结束后,检查栈是否为空。
- 如果栈为空,说明所有括号都匹配成功,返回
true
。 - 如果栈不为空,说明有未匹配的括号,返回
false
。
- 如果栈为空,说明所有括号都匹配成功,返回
3. 算法调用
- 调用
getResult(s)
方法处理输入,并输出结果(boolalpha
用于输出true/false
而不是1/0
)。
C 语言代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>// 定义栈结构
typedef struct {char data[1000]; // 栈数据int top; // 栈顶指针
} Stack;// 初始化栈
void initStack(Stack *stack) {stack->top = -1;
}// 压栈
void push(Stack *stack, char c) {stack->data[++stack->top] = c;
}// 弹栈
char pop(Stack *stack) {return stack->data[stack->top--];
}// 获取栈顶元素
char top(Stack *stack) {return stack->data[stack->top];
}// 判断栈是否为空
bool isEmpty(Stack *stack) {return stack->top == -1;
}// 算法入口
bool getResult(char *s) {// 去除非括号字符char filtered[1000];int j = 0;for (int i = 0; s[i] != '\0'; i++) {if (s[i] == '(' || s[i] == ')' || s[i] == '[' || s[i] == ']' || s[i] == '{' || s[i] == '}') {filtered[j++] = s[i]; // 只保留括号字符}}filtered[j] = '\0'; // 字符串结束符// 定义括号映射关系char map[256] = {0};map[')'] = '(';map[']'] = '[';map['}'] = '{';// 使用栈来检查括号是否匹配Stack stack;initStack(&stack);// 遍历处理后的字符串for (int i = 0; filtered[i] != '\0'; i++) {char c = filtered[i];// 如果栈不为空,且当前字符是右括号if (!isEmpty(&stack) && map[c] != 0) {// 检查栈顶元素是否是对应的左括号if (top(&stack) == map[c]) {pop(&stack); // 匹配成功,弹出栈顶元素continue;} else {return false; // 匹配失败,返回 false}}// 将当前字符压入栈中push(&stack, c);}// 如果栈为空,说明所有括号都匹配成功return isEmpty(&stack);
}int main() {// 输入获取char s[1000];fgets(s, sizeof(s), stdin); // 读取一行输入// 算法调用printf("%s\n", getResult(s) ? "true" : "false"); // 输出结果return 0;
}
C 语言代码逻辑讲解
1. 输入获取
- 使用
fgets(s, sizeof(s), stdin)
从控制台读取一行输入,并将其存储在字符数组s
中。
2. 算法入口
- 步骤 1:去除非括号字符。
- 遍历字符串
s
,只保留括号字符((
,)
,[
,]
,{
,}
)。 - 将过滤后的字符存储在
filtered
字符数组中。
- 遍历字符串
- 步骤 2:定义括号映射关系
map
。- 使用字符数组
map
存储右括号和左括号的对应关系。
- 使用字符数组
- 步骤 3:使用栈
stack
来检查括号是否匹配。- 遍历处理后的字符串
filtered
:- 如果当前字符是右括号,检查栈顶元素是否是对应的左括号。
- 如果匹配成功,弹出栈顶元素。
- 如果匹配失败,返回
false
。
- 如果当前字符是左括号,直接压入栈中。
- 如果当前字符是右括号,检查栈顶元素是否是对应的左括号。
- 遍历处理后的字符串
- 步骤 4:遍历结束后,检查栈是否为空。
- 如果栈为空,说明所有括号都匹配成功,返回
true
。 - 如果栈不为空,说明有未匹配的括号,返回
false
。
- 如果栈为空,说明所有括号都匹配成功,返回
3. 算法调用
- 调用
getResult(s)
方法处理输入,并输出结果(true
或false
)。
总结
- 功能:检查输入字符串中的括号是否匹配。
- 核心逻辑:
- 去除非括号字符。
- 使用栈检查括号是否匹配。
- 适用场景:需要检查括号匹配的场景,例如代码语法检查。
- 注意事项:
- 输入字符串可能包含非括号字符,需要先去除。
- 栈的使用是解决括号匹配问题的经典方法。
如果有其他问题,欢迎随时提问!
相关文章:
【2024年华为OD机试】 (C卷,100分)- 括号匹配(Java JS PythonC/C++)
一、问题描述 题目描述 给定一个字符串,里边可能包含“()”、“[]”、“{}”三种括号,请编写程序检查该字符串中的括号是否成对出现,且嵌套关系正确。 若括号成对出现且嵌套关系正确,或该字符串中无括号字符,输出&am…...
解锁企业数字化转型新力量:OpenCoze(开源扣子)
在当今数字化浪潮席卷之下,企业对于高效管理和协同运作的需求愈发迫切,而开源技术正逐渐成为众多企业破局的关键利器。今天,想给大家介绍一款极具潜力的开源项目 ——OpenCoze,中文名称 “开源扣子”。 一、OpenCoze 是什么&…...
【网络云SRE运维开发】2025第2周-每日【2025/01/12】小测-【第12章 rip路由协议】理论和实操考试题解析
文章目录 选择题答案及解析理论题答案及解析实操题答案及解析下一步进阶 选择题答案及解析 RIP路由协议是基于哪种算法的动态路由协议? 答案:B. 距离矢量算法解析:链路状态算法用于OSPF等协议;最小生成树算法主要用于生成树协议&…...
【微服务】8、分布式事务 ( XA 和 AT )
文章目录 利用Seata解决分布式事务问题(XA模式)AT模式1. AT模式原理引入2. AT模式执行流程与XA模式对比3. AT模式性能优势及潜在问题4. AT模式数据一致性解决方案5. AT模式一阶段操作总结6. AT模式二阶段操作分析7. AT模式整体特点8. AT模式与XA模式对比…...
CVE-2025-22777 (CVSS 9.8):WordPress | GiveWP 插件的严重漏洞
漏洞描述 GiveWP 插件中发现了一个严重漏洞,该插件是 WordPress 最广泛使用的在线捐赠和筹款工具之一。该漏洞的编号为 CVE-2025-22777,CVSS 评分为 9.8,表明其严重性。 GiveWP 插件拥有超过 100,000 个活跃安装,为全球无数捐赠平…...
TypeScript Jest 单元测试 搭建
NPM TypeScript 项目搭建 创建目录 mkdir mockprojectcd mockproject初始化NPM项目 npm init -y安装TypeScript npm i -D typescript使用VSCode 打开项目 创建TS配置文件tsconfig.json {"compilerOptions": {"target": "es5","module&…...
基于 SSH 的任务调度系统
文末附有完整项目代码 在当今科技飞速发展的时代,任务调度系统的重要性日益凸显。本文将详细介绍一个基于 SSH(SpringStruts2Hibernate)的任务调度系统的设计与实现。 一、系统概述 本系统旨在改变传统人工任务调度方式,通过计算…...
filestream安装使用全套+filebeat的模块用法
1 filestream介绍 官方宣布:输入类型为log在filebeat7.16版本已经弃用了 Filestream 是 Filebeat 中的一种 输入类型(Input),用于处理日志文件的读取。它是为了取代 Filebeat 中传统的 log 输入(Input)设…...
java项目之房屋租赁系统源码(springboot+mysql+vue)
项目简介 房屋租赁系统实现了以下功能: 房屋租赁系统的主要使用者分为: 系统管理:个人中心、房屋信息管理、预约看房管理、合同信息管理、房屋报修管理、维修处理管理、房屋评价管理等模块的查看及相应操作; 房屋信息管理&#…...
sap mm学习笔记
1. 业务流程 2. 组织架构 3. 物料主数据 4.采购主数据 5. 采购管理 6. 库存管理 7.物料主数据 8. 采购申请 ME51N...
代码随想录_链表
代码随想录02 链表 203.移除链表元素 力扣题目链接(opens new window) 题意:删除链表中等于给定值 val 的所有节点。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5] 示例 2: 输入:he…...
EF Code 并发控制
【悲观控制】 不推荐用,EF Core 没有封装悲观并发控制的使用,需要使用原生Sql来使用悲观并发控制 一般使用行锁、表锁等排他锁对资源进行锁定,同时只有一个使用者操作被锁定的资源 拿sql server举例,可以使用表所、或者行所解决…...
ceph fs status 输出详解
ceph fs status 命令用于显示 Ceph 文件系统的状态信息,其中各列的含义如下: RANK:元数据服务器(MDS)的等级或标识符。 STATE:MDS 的当前状态,例如 active(活跃)、stan…...
FFmpeg Muxer HLS
使用FFmpeg命令来研究它对HLS协议的支持程度是最好的方法: ffmpeg -h muxerhls Muxer HLS Muxer hls [Apple HTTP Live Streaming]:Common extensions: m3u8.Default video codec: h264.Default audio codec: aac.Default subtitle codec: webvtt. 这里面告诉我…...
如何用SQL语句来查询表或索引的行存/列存存储方式|OceanBase 用户问题集锦
一、问题背景 自OceanBase 4.3.0版本起,支持了列存引擎,允许表和索引以行存、纯列存或行列冗余的形式创建,且这些存储方式可以自由组合。除了使用 show create table命令来查看表和索引的存储类型外,也有用户询问如何通过SQL语句…...
回归预测 | MATLAB实GRU多输入单输出回归预测
回归预测 | MATLAB实GRU多输入单输出回归预测 目录 回归预测 | MATLAB实GRU多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实GRU多输入单输出回归预测。使用GRU作为RNN的一种变体来处理时间序列数据。GRU相比传统的RNN有较好的记…...
【OpenGL/Assimp】渲染模型、半透明材质与封装光源
文章目录 渲染成果Assimp库准备:Mesh类修改:透明贴图使用:光源封装:使用方式在如下测试环境中: 渲染成果 Assimp库准备: 从GitHub拉取源码,根据网络教程,借助CMake生成VS工程项目&a…...
pandas与sql对应关系【帮助sql使用者快速上手pandas】
本页旨在提供一些如何使用pandas执行各种SQL操作的示例,来帮助SQL使用者快速上手使用pandas。 目录 SQL语法一、选择SELECT1、选择2、添加计算列 二、连接JOIN ON1、内连接2、左外连接3、右外连接4、全外连接 三、过滤WHERE1、AND2、OR3、IS NULL4、IS NOT NULL5、B…...
Linux WEB漏洞
定义:Linux Web 漏洞是指在基于 Linux 操作系统的 Web 应用程序、Web 服务器软件或者相关的网络服务配置中存在的安全弱点。这些漏洞可能导致攻击者未经授权访问敏感信息、篡改网页内容、执行恶意代码,甚至完全控制服务器。 常见类型及原理 SQL 注入漏…...
音视频入门基础:RTP专题(2)——使用FFmpeg命令生成RTP流
通过FFmpeg命令可以将一个媒体文件转推RTP: ffmpeg -re -stream_loop -1 -i input.mp4 -c:v copy -an -f rtp rtp://192.168.0.102:5400 但是通过ffplay尝试播放上述产生的RTP流时会报错:“Unable to receive RTP payload type 96 without an SDP file …...
大语言模型预训练、微调、RLHF
转发,如有侵权,请联系删除: 1.【LLM】3:从零开始训练大语言模型(预训练、微调、RLHF) 2.老婆饼里没有老婆,RLHF里也没有真正的RL 3.【大模型微调】一文掌握7种大模型微调的方法 4.基于 Qwen2.…...
vue3后台系统动态路由实现
动态路由的流程:用户登录之后拿到用户信息和token,再去请求后端给的动态路由表,前端处理路由格式为vue路由格式。 1)拿到用户信息里面的角色之后再去请求路由表,返回的路由为tree格式 后端返回路由如下: …...
解决idea中无法拖动tab标签页的问题
1、按 Ctrl Alt S 打开设置,找到路径 File | Settings | Appearance & Behavior | Appearance 2、去掉勾选 Drag-and-drop with Alt pressed only 即可...
WMS仓库管理系统,Vue前端开发,Java后端技术源码(源码学习)
一、项目背景和建设目标 随着企业业务的不断扩展,仓库管理成为影响生产效率、成本控制及客户满意度的重要环节。为了提升仓库作业的透明度、准确性和效率,本方案旨在构建一套全面、高效、易用的仓库管理系统(WMS)。该系统将涵盖库…...
25/1/12 嵌入式笔记 学习esp32
了解了一下位选线和段选线的知识: 位选线: 作用:用于选择数码管的某一位,例如4位数码管的第1位,第2位) 通过控制位选线的电平(高低电平),决定当前哪一位数码管处于激活状…...
【NLP】ELMO、GPT、BERT、BART模型解读及对比分析
文章目录 一、基础知识1.1 Word Embedding(词嵌入)1.2 词嵌入模型1.3 神经网络语言模型NNLM 二、ELMO2.1 ELMO的提出2.2 ELMO核心思想2.3 ELMO的优缺点 三、GPT3.1 Transformer3.2 GPT简介3.3 GPT模型架构3.4 预训练及微调3.5 GPT和ELMO对比 四、BERT4.1…...
go语言学习(数组,切片,字符串)
字符串 如果里面存储的是汉字,那么其实就是存储的是UTF--8编码,所以一个字会对应多个字节.如果想要获取汉字的个数,可以使用rune,来处理unicode字符 length: utf8.RuneCountInString( s) 如果只使用len()获取的是字节的个数, 字符串的功能 1,获取字节长度 len(xx) 2,获取字…...
PM 实战 - 智能药盒PRD + 市场规模分析
写在前面 智能硬件 PRD 实例资源很少,Po下个人作品,假定前提为to Boss需求,目标在于覆盖产品设计核心部分(用户画像Persona、产品逻辑图、产品架构图、软件原型图、硬件低保真设计、用例Use Case、硬件标准)。不是申请…...
SQL刷题快速入门(二)
其他章节:SQL刷题快速入门(一) 承接上一章节,本章主要讲SQL的运算符、聚合函数、SQL保留小数的几种方式三个部分 运算符 SQL 支持多种运算符,用于执行各种操作,如算术运算、比较、赋值、逻辑运算等。以下…...
hive迁移后修复分区慢,怎么办?
我有1个30TB的分区表,客户给的带宽只有600MB,按照150%的耗时来算,大概要迁移17小时。 使用hive自带的修复分区命令(一般修复分区比迁移时间长一点),可能要花24小时。于是打算用前面黄大佬的牛B方案。 Hive增…...
网站登录页面怎么做的/建站系统哪个比较好
减少TIME_WAIT时间的优化配置 建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: net.ipv4.tcp_max_syn_backlog8192 增加TCP SYN队列长度,使系统可以处理更多的并发连接 net.ipv4.tcp_syncookies 1 #表示开启SYN…...
高端品牌网站建设集团/淘宝关键词排名
最近闲来无事,想看看以前在公司做过的这pcs工程(采用SSH架构),却无法运行? 经研究发现以下几个问题: 1.由于今天刚还原了系统,虽然重新装了jdk1.6,但myeclipse中的tomcat的jdk配置没…...
推广网站优化seo教程上排名/郑州seo优化顾问阿亮
datasg中的数据的存储结转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/27/3845622.html...
网站开发模块就业前景/吉林seo排名公司
1. MQTT 介绍 它是一种 机器之间通讯 machine-to-machine (M2M)、物联网 Internet of Things (IoT)常用的一种轻量级消息传输协议适用于网络带宽较低的场合包含发布、订阅模式,通过一个代理服务器(broker),…...
wordpress创建标签页/seo工程师
一、单继承情况: 解析: 创建B类的实例化对象时,执行初始化函数: 打印输出Enter B,当遇到super()调用父类初始化函数(此时是调用B类的父类A的__init__函数),输出Enter A、Leave B&…...
豪华网站建设/交换友链要注意什么
相信各位android开发者,对SAX已经并不陌生了,SAX(Simple API for XML),是一个使用非常广泛的XML解析标准,通常使用Handler模式来处理XML文档,这种处理模式和我们平常习惯的理解方式很不同,身边也…...