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

华为OD机试 - 文本统计分析(Python/JS/C/C++ 2024 E卷 200分)

在这里插入图片描述

华为OD机试 2024E卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

有一个文件,包含以一定规则写作的文本,请统计文件中包含的文本数量。

规则如下:

1、文本以";“分隔,最后一条可以没有”;",但空文本不能算语句,比如"COMMAND A;“只能算一条语句。注意,无字符/空白字符Q/制表符等操作"空文本”;

2、文本可以跨行,比如下面,是一条文本,而不是三条;

COMMAND A
AND
COMMAND B;

文本支持字符串,字符串为成对的单引号(‘)或者成对的双引号("),字符串中可能出现用转义字符()处理的单双引号(‘your input is’”)和转义字符串本身,比如

COMMAND A "Say \"hello\"";

支持注释,可以出现在字符串之外的任意位置注释以"—"开头,到换行结束,比如:

COMMAND A;this is comment
COMMAND —comment
A AND COMMAND B;

注意 字符串Q 内的“—”,不是注释。

二、输入描述

文本文件

三、输出描述

包含的文本数量

四、测试用例

测试用例1:

1、输入

COMMAND A;
COMMAND B;
COMMAND C; — This is a comment
COMMAND D; — Another comment

2、输出

4

3、说明

本例中的文件内容有4个命令,每个命令都以分号结尾。

尽管第三行和第四行后面有注释,注释部分不会影响命令的统计。

因此,总共4条有效命令。

测试用例2:

1、输入

COMMAND A;
COMMAND B
AND COMMAND C;
COMMAND “D"Text”";
— Entire line is a comment
COMMAND E; — Comment at the end

2、输出

4

3、说明

第一行 COMMAND A; 是一条有效命令。

第二行和第三行合并构成一条跨行命令 COMMAND B AND COMMAND C;。

第四行 COMMAND “D"Text”"; 是一条有效命令,其中 " 表示转义字符,表示字符串中的双引号。

第五行是一个注释,应该被忽略。

第六行 COMMAND E; 是一条有效命令,尽管有注释。

最终,共有4条有效命令。

五、解题思路

程序会检查文件内容中的注释,并将这些注释移除。注释是以 “—” 开头,直到该行结束。需要注意的是,程序会确保只移除字符串之外的注释,即在字符串内的 “—” 不会被视为注释。这一步是为了避免注释内容干扰命令的统计。

程序会根据分号(;)将内容分割成多个部分,每个部分代表一个潜在的命令。

对于每个分割出的部分,程序会去除首尾空白符,并检查内容是否为空。只有非空的部分才会被计数为有效命令。这一步是为了确保空白命令或无效的命令不会被错误地计入。

程序会输出统计得到的有效命令数量。这个数量即为文件中符合规则的命令的总数。

六、Python算法源码

import sysdef is_escaped(line, index):"""判断当前位置的字符是否被转义:param line: 当前处理的行字符串:param index: 当前字符的索引:return: 如果字符被转义,返回True;否则返回False"""backslash_count = 0index -= 1  # 检查当前字符前面的字符while index >= 0 and line[index] == '\\':backslash_count += 1index -= 1return backslash_count % 2 != 0  # 如果反斜杠数量为奇数,则字符被转义def find_comment_index(line):"""找到注释的起始位置,忽略字符串内的注释符:param line: 当前处理的行字符串:return: 注释符的索引,如果没有注释,返回-1"""in_single_quote = False  # 是否在单引号字符串内in_double_quote = False  # 是否在双引号字符串内for i, ch in enumerate(line):if ch == '\'' and not is_escaped(line, i):in_single_quote = not in_single_quote  # 切换单引号状态elif ch == '"' and not is_escaped(line, i):in_double_quote = not in_double_quote  # 切换双引号状态elif ch == '—' and not in_single_quote and not in_double_quote:return i  # 找到不在字符串内的注释符return -1  # 没有找到注释符def main():count = 0  # 有效命令计数current_text = []  # 当前命令的内容列表in_single_quote = False  # 是否在单引号字符串内in_double_quote = False  # 是否在双引号字符串内for line in sys.stdin:line = line.rstrip('\n')  # 移除行尾的换行符if not line:break  # 输入空行结束输入# 处理注释:找到注释符的位置并截断comment_index = find_comment_index(line)if comment_index != -1:line = line[:comment_index]i = 0  # 当前字符索引while i < len(line):ch = line[i]  # 当前字符# 处理引号,切换状态if ch == '\'' and not is_escaped(line, i):in_single_quote = not in_single_quoteelif ch == '"' and not is_escaped(line, i):in_double_quote = not in_double_quote# 处理文本结束符';'if ch == ';' and not in_single_quote and not in_double_quote:if ''.join(current_text).strip():  # 如果当前命令非空count += 1  # 有效命令数加一current_text = []  # 重置当前命令内容else:current_text.append(ch)  # 添加字符到当前命令i += 1  # 移动到下一个字符current_text.append('\n')  # 保留换行符以支持跨行命令# 处理最后一个可能没有分号的文本final_text = ''.join(current_text).strip()if final_text and not final_text.startswith('—'):count += 1  # 如果最后的文本非空且不是注释,计数加一print(count)  # 输出有效命令数量if __name__ == "__main__":main()

七、JavaScript算法源码

const readline = require('readline');/*** 判断当前位置的字符是否被转义* @param {string} line - 当前处理的行字符串* @param {number} index - 当前字符的索引* @returns {boolean} 如果字符被转义,返回true;否则返回false*/
function isEscaped(line, index) {let backslashCount = 0;index -= 1; // 检查当前字符前面的字符while (index >= 0 && line[index] === '\\') {backslashCount++;index--;}return backslashCount % 2 !== 0; // 如果反斜杠数量为奇数,则字符被转义
}/*** 找到注释的起始位置,忽略字符串内的注释符* @param {string} line - 当前处理的行字符串* @returns {number} 注释符的索引,如果没有注释,返回-1*/
function findCommentIndex(line) {let inSingleQuote = false; // 是否在单引号字符串内let inDoubleQuote = false; // 是否在双引号字符串内for (let i = 0; i < line.length; i++) {const ch = line[i];if (ch === '\'' && !isEscaped(line, i)) {inSingleQuote = !inSingleQuote; // 切换单引号状态} else if (ch === '"' && !isEscaped(line, i)) {inDoubleQuote = !inDoubleQuote; // 切换双引号状态} else if (ch === '—' && !inSingleQuote && !inDoubleQuote) {return i; // 找到不在字符串内的注释符}}return -1; // 没有找到注释符
}// 创建读取接口,用于逐行读取输入
const rl = readline.createInterface({input: process.stdin,output: process.stdout,terminal: false
});let count = 0; // 有效命令计数
let currentText = []; // 当前命令的内容数组
let inSingleQuote = false; // 是否在单引号字符串内
let inDoubleQuote = false; // 是否在双引号字符串内// 监听每一行的输入
rl.on('line', (line) => {if (line === '') {rl.close(); // 输入空行结束输入return;}// 处理注释:找到注释符的位置并截断const commentIndex = findCommentIndex(line);if (commentIndex !== -1) {line = line.substring(0, commentIndex);}for (let i = 0; i < line.length; i++) {const ch = line[i];// 处理引号,切换状态if (ch === '\'' && !isEscaped(line, i)) {inSingleQuote = !inSingleQuote;} else if (ch === '"' && !isEscaped(line, i)) {inDoubleQuote = !inDoubleQuote;}// 处理文本结束符';'if (ch === ';' && !inSingleQuote && !inDoubleQuote) {if (currentText.join('').trim().length > 0) { // 如果当前命令非空count++; // 有效命令数加一currentText = []; // 重置当前命令内容}} else {currentText.push(ch); // 添加字符到当前命令}}currentText.push('\n'); // 保留换行符以支持跨行命令
});// 输入结束后处理
rl.on('close', () => {// 处理最后一个可能没有分号的文本const finalText = currentText.join('').trim();if (finalText.length > 0 && !finalText.startsWith('—')) {count++; // 如果最后的文本非空且不是注释,计数加一}console.log(count); // 输出有效命令数量
});

八、C算法源码

#include <stdio.h>
#include <string.h>
#include <stdbool.h>#define MAX_LINE_LENGTH 1000/*** 判断当前位置的字符是否被转义* @param line 当前处理的行字符串* @param index 当前字符的索引* @return 如果字符被转义,返回true;否则返回false*/
bool is_escaped(char *line, int index) {int backslash_count = 0;index--; // 检查当前字符前面的字符while (index >= 0 && line[index] == '\\') {backslash_count++;index--;}return backslash_count % 2 != 0; // 如果反斜杠数量为奇数,则字符被转义
}/*** 找到注释的起始位置,忽略字符串内的注释符* @param line 当前处理的行字符串* @return 注释符的索引,如果没有注释,返回-1*/
int find_comment_index(char *line) {bool in_single_quote = false; // 是否在单引号字符串内bool in_double_quote = false; // 是否在双引号字符串内int len = strlen(line);for (int i = 0; i < len; i++) {char ch = line[i];if (ch == '\'' && !is_escaped(line, i)) {in_single_quote = !in_single_quote; // 切换单引号状态} else if (ch == '"' && !is_escaped(line, i)) {in_double_quote = !in_double_quote; // 切换双引号状态} else if (ch == '—' && !in_single_quote && !in_double_quote) {return i; // 找到不在字符串内的注释符}}return -1; // 没有找到注释符
}int main() {char line[MAX_LINE_LENGTH]; // 用于存储每一行输入int count = 0; // 有效命令计数char current_text[MAX_LINE_LENGTH * 10] = ""; // 当前命令的内容字符串// 逐行读取输入while (fgets(line, sizeof(line), stdin)) {// 移除末尾的换行符size_t len = strlen(line);if (len > 0 && line[len - 1] == '\n') {line[len - 1] = '\0';}if (strlen(line) == 0) {break; // 输入空行结束输入}// 处理注释:找到注释符的位置并截断int comment_index = find_comment_index(line);if (comment_index != -1) {line[comment_index] = '\0';}// 遍历每个字符for (int i = 0; i < strlen(line); i++) {char ch = line[i];// 处理引号,切换状态if (ch == '\'' && !is_escaped(line, i)) {// 切换单引号状态// 在C语言中,单引号用于字符,通常不会跨多个字符// 此处假设与Java代码逻辑一致// 实际应用中可能需要调整} else if (ch == '"' && !is_escaped(line, i)) {// 切换双引号状态// 同上}// 需要重新处理引号状态bool in_single_quote = false;bool in_double_quote = false;for (int j = 0; j <= i; j++) {if (line[j] == '\'' && !is_escaped(line, j)) {in_single_quote = !in_single_quote;} else if (line[j] == '"' && !is_escaped(line, j)) {in_double_quote = !in_double_quote;}}// 处理文本结束符';'if (ch == ';' && !in_single_quote && !in_double_quote) {// 检查current_text是否非空bool non_empty = false;for (int k = 0; k < strlen(current_text); k++) {if (current_text[k] != ' ' && current_text[k] != '\t' && current_text[k] != '\n') {non_empty = true;break;}}if (non_empty) {count++; // 有效命令数加一current_text[0] = '\0'; // 重置当前命令内容}} else {// 添加字符到当前命令int current_len = strlen(current_text);if (current_len < sizeof(current_text) - 1) { // 防止溢出current_text[current_len] = ch;current_text[current_len + 1] = '\0';}}}// 添加换行符以支持跨行命令strcat(current_text, "\n");}// 处理最后一个可能没有分号的文本// 移除前导空白char *final_text = current_text;while (*final_text == ' ' || *final_text == '\t' || *final_text == '\n') {final_text++;}if (strlen(final_text) > 0 && final_text[0] != '—') {count++; // 如果最后的文本非空且不是注释,计数加一}printf("%d\n", count); // 输出有效命令数量return 0;
}

九、C++算法源码

#include <iostream>
#include <string>using namespace std;/*** 判断当前位置的字符是否被转义* @param line 当前处理的行字符串* @param index 当前字符的索引* @return 如果字符被转义,返回true;否则返回false*/
bool is_escaped(const string &line, int index) {int backslash_count = 0;index--; // 检查当前字符前面的字符while (index >= 0 && line[index] == '\\') {backslash_count++;index--;}return backslash_count % 2 != 0; // 如果反斜杠数量为奇数,则字符被转义
}/*** 找到注释的起始位置,忽略字符串内的注释符* @param line 当前处理的行字符串* @return 注释符的索引,如果没有注释,返回-1*/
int find_comment_index(const string &line) {bool in_single_quote = false; // 是否在单引号字符串内bool in_double_quote = false; // 是否在双引号字符串内for (int i = 0; i < line.length(); i++) {char ch = line[i];if (ch == '\'' && !is_escaped(line, i)) {in_single_quote = !in_single_quote; // 切换单引号状态} else if (ch == '"' && !is_escaped(line, i)) {in_double_quote = !in_double_quote; // 切换双引号状态} else if (ch == '—' && !in_single_quote && !in_double_quote) {return i; // 找到不在字符串内的注释符}}return -1; // 没有找到注释符
}int main() {int count = 0; // 有效命令计数string current_text = ""; // 当前命令的内容字符串string line; // 用于存储每一行输入// 逐行读取输入while (getline(cin, line)) {if (line.empty()) {break; // 输入空行结束输入}// 处理注释:找到注释符的位置并截断int comment_index = find_comment_index(line);if (comment_index != -1) {line = line.substr(0, comment_index);}// 遍历每个字符for (size_t i = 0; i < line.length(); i++) {char ch = line[i];// 处理引号,切换状态if (ch == '\'' && !is_escaped(line, i)) {// 切换单引号状态// 在C++中,单引号用于字符,通常不会跨多个字符// 此处假设与Java代码逻辑一致// 实际应用中可能需要调整} else if (ch == '"' && !is_escaped(line, i)) {// 切换双引号状态// 同上}// 需要重新处理引号状态bool in_single_quote = false;bool in_double_quote = false;for (size_t j = 0; j <= i; j++) {if (line[j] == '\'' && !is_escaped(line, j)) {in_single_quote = !in_single_quote;} else if (line[j] == '"' && !is_escaped(line, j)) {in_double_quote = !in_double_quote;}}// 处理文本结束符';'if (ch == ';' && !in_single_quote && !in_double_quote) {if (current_text.find_first_not_of(" \t\n") != string::npos) { // 如果当前命令非空count++; // 有效命令数加一current_text = ""; // 重置当前命令内容}} else {current_text += ch; // 添加字符到当前命令}}// 添加换行符以支持跨行命令current_text += '\n';}// 处理最后一个可能没有分号的文本// 移除前导空白size_t start = current_text.find_first_not_of(" \t\n");if (start != string::npos) {string final_text = current_text.substr(start);if (!final_text.empty() && final_text[0] != '—') {count++; // 如果最后的文本非空且不是注释,计数加一}}cout << count << endl; // 输出有效命令数量return 0;
}

🏆下一篇:华为OD机试真题 - 简易内存池(Python/JS/C/C++ 2024 E卷 200分)

🏆本文收录于,华为OD机试真题(Python/JS/C/C++)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

相关文章:

华为OD机试 - 文本统计分析(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…...

计算机挑战赛9

Excel表列名称由字母A~Z组成&#xff0c;列字母的规律如下: A、B、C.、AA、AB....AZ、BA、B...ZZZZY、ZZZZ...输入: 输入包含两个列名称字符串&#xff0c;长度均小于等于5。 输出: 输出两个列名称之间共有多少列 样例输入: AA AZ 样例输出: 24 代码&#xff1a; C&…...

C++学习路线(十六)

void类型指针 void -> 空类型 void* -> 空类型指针&#xff0c;只存储地址的值&#xff0c;丢失类型&#xff0c;无法访问&#xff0c;要访问里面的值 我们必须对指针进行正确的类型转换&#xff0c;然后再间接引用指针 所有其它类型的指针都可以隐式自动转换成 void 类型…...

2024年最受欢迎的AI工具与实际应用:AI技术对未来生活的深远影响

2024年最受欢迎的AI工具与实际应用&#xff1a;AI技术对未来生活的深远影响 随着2024年的到来&#xff0c;人工智能&#xff08;AI&#xff09;技术已经深入渗透到我们生活的方方面面。从日常工作到科学研究&#xff0c;AI工具的应用变得越来越广泛。无论是生成式AI工具&#…...

【网络安全】账户安全随笔

未经许可,不得转载。 作者:Enoch 原文出处:https://mp.weixin.qq.com/s/oKBpZ0F6Kl5NNmHSYCYIPw 文章目录 账户类型资金划转问题幂等ID使用错误多接口并发问题精度问题其他划转问题特殊资金盗取问题科学计数法问题账户类型 在互联网金融和电商企业中,账户安全直接关系到用…...

在线培训知识库管理系统:教育行业的新动力

在当今数字化时代&#xff0c;教育行业正经历着前所未有的变革。随着在线教育的兴起&#xff0c;如何高效地管理和传播知识成为了一个关键问题。在线培训知识库管理系统应运而生&#xff0c;它以其强大的知识整合、分享和管理能力&#xff0c;为教育行业注入了新的活力。 一、…...

【AI声音克隆本地整合包及教程】第二代GPT-SoVITS V2:声音克隆的新境界

在数字时代的浪潮中&#xff0c;个性化和创新是永恒的主题。GPT-SoVITS V2&#xff0c;作为第二代声音克隆技术&#xff0c;正以其革命性的特性和应用&#xff0c;为个人和企业打开一扇通往声音个性化的新大门。 声音克隆的新高度 GPT-SoVITS V2是由RVC变声器创始人“花儿不哭…...

博看书苑 8.8.1| 免费阅读海量图书期刊

博看书苑是一款免费的图书和期刊阅读神器&#xff0c;拥有海量的图书和期刊资源&#xff0c;涵盖了文学、历史、科技、教育等多个领域。无论你是想深入研究某个专业领域&#xff0c;还是想在闲暇时阅读一些轻松的读物&#xff0c;博看书苑都能满足你的需求。更令人惊喜的是&…...

导致动态代理无法使用的原因有哪些?

在动态代理的应用过程中&#xff0c;有时会遇到其无法正常使用的情况。这种现象可能源于多种原因&#xff0c;从网络配置到软件设置&#xff0c;了解和解决这些问题对保持代理的高效运行至关重要。本文将详细探讨导致动态代理无法使用的主要原因及对策&#xff0c;以帮助用户及…...

熟练使用Spring Boot、Spring Cloud Alibaba微服务开发框架,并深入理解其原理 学习要求

1. Spring Boot 核心理解 自动配置&#xff1a;了解 Spring Boot 的自动配置原理&#xff08;EnableAutoConfiguration&#xff09;&#xff0c;包括如何查看和定制自动配置的内容。需要能解释 Spring Boot 如何减少样板代码。Spring Boot Starter&#xff1a;熟悉各种 starte…...

2024-10-09 问AI: [AI面试题] 描述数据预处理在 AI 中的重要性

文心一言 数据预处理在人工智能&#xff08;AI&#xff09;中扮演着至关重要的角色&#xff0c;它是构建高效、准确和可靠AI模型不可或缺的步骤。以下是数据预处理在AI中重要性的详细描述&#xff1a; 1. 提高数据质量 清理和去噪&#xff1a;数据预处理可以识别和纠正数据中…...

Linux中文件的理解

✨前言✨ &#x1f4d8; 博客主页&#xff1a;to Keep博客主页 &#x1f646;欢迎关注&#xff0c;&#x1f44d;点赞&#xff0c;&#x1f4dd;留言评论 ⏳首发时间&#xff1a;2024年10月16日 &#x1f4e8; 博主码云地址&#xff1a;渣渣C &#x1f4d5;参考书籍&#xff1a…...

益安宁丸,国药准字,值得信赖

益安宁丸真品辨别唯一标准 益安宁丸是由同溢堂药业有限公司独家生产的一款中成药&#xff0c;主要用于调理心血管系统&#xff0c;广泛应用于内地市场及港澳地区。由于其疗效显著&#xff0c;益安宁丸在消费者中享有良好的声誉&#xff0c;被誉为心血管健康的守护者。然而&…...

Django项目的创建及说明(详细图解版)

Django项目的创建及说明 1、安装Django2、创建项目2.1、利用终端创建项目2.2、利用Pycharm企业版创建项目 3、默认文件介绍 1、安装Django 在终端输入下述命令行。 pip install django安装成功后执行如下命令查看Django是否安装好&#xff0c;若正确显示出Django版本号则安装…...

MySQL 9从入门到性能优化-二进制日志

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...

Cloudlog delete_oqrs_line 未授权SQL注入漏洞复现

0x01 产品简介 Cloudlog 是一个自托管的 PHP 应用程序,可让您在任何地方记录您的业余无线电联系人。使用PHP和MySQL构建的基于Web的业余无线电记录应用程序支持从HF到微波的一般站记录任务 0x02 漏洞概述 Cloudlog delete_oqrs_line 接口存在未授权SQL注入漏洞,未经身份验…...

【Linux】解锁软硬链接奥秘,高效动静态库管理的实战技巧

软硬连接和动静态库 1. 软链接1.1. 概念1.2. 特点1.3. 应用场景 2. 硬链接2.1. 概念2.2. 硬链计数2.3. 特点2.4. 应用场景 3. 动静态库3.1 库存在的原因3.2. 静态库制作与使用3.2.1 打包3.2.2. 使用 3.3. 动态库制作与使用3.3.1. 打包3.3.2. 使用 4. 解决动态库查不到的4种方法…...

【设计模式】Python 后端开发中的工厂模式设计与实现

Python 后端开发中的工厂模式设计与实现 1. 引言 在后端开发中&#xff0c;如何设计一套易于扩展、可维护且灵活的系统架构是开发者面临的重要课题。设计模式在这一过程中扮演了至关重要的角色&#xff0c;尤其是在面向对象编程中&#xff0c;它提供了大量解决重复问题的标准…...

划重点!入门安全测试,这几点要注意!

朋友们&#xff0c;今天我们一起来学习下如何做安全测试。 那么首先&#xff0c;什么是安全测试&#xff1f; 安全测试是评估和验证软件系统、应用程序或网络的安全性和强度的过程。其目标是发现和修复潜在的安全漏洞和脆弱性&#xff0c;以确保系统能够抵御恶意攻击和未授权…...

mysql 09 独立表空间结构

表空间中的页实在是太多了&#xff0c;为了更好的管理这些页面&#xff0c;设计 InnoDB 的大叔们提出了 区 &#xff08;英文名&#xff1a; extent &#xff09;的概念。对于16KB的页来说&#xff0c;连续的64个页就是一个 区 &#xff0c;也就是说一个区默认占用1MB空间大小。…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...