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

news2024/12/22 23:28:32

在这里插入图片描述

华为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 sys

def is_escaped(line, index):
    """
    判断当前位置的字符是否被转义
    :param line: 当前处理的行字符串
    :param index: 当前字符的索引
    :return: 如果字符被转义,返回True;否则返回False
    """
    backslash_count = 0
    index -= 1  # 检查当前字符前面的字符
    while index >= 0 and line[index] == '\\':
        backslash_count += 1
        index -= 1
    return 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_quote
            elif 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在线答疑。

在这里插入图片描述

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

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

相关文章

在 Django 模板文件中出现错误:Could not parse the remainder: ‘!=0‘ from ‘!=0‘

问题在于我写了一条关于 {% if %} 标签中关于运算符 !0 的判断&#xff0c;出现 Could not parse the remainder: !0 from !0 错误 问题分析&#xff1a; 1、已确定 student 对象已经传递到模板中&#xff0c;并且 score 属性存在 2、确定 student.score 的值是可以与 0 进行…

前端开发设计模式——命令模式

目录 一、命令模式的定义和特点 1.定义&#xff1a; 2. 特点&#xff1a; 二、命令模式的结构与原理 1.结构&#xff1a; 2.原理&#xff1a; 三、命令模式的实现方式 1.定义接口命令&#xff1a; 2.创建具体的命令类&#xff1a; 3.定义接收者&…

blender分离含有多个动作的模型,并导出含有材质的fbx模型

问题背景 笔者是模型小白&#xff0c;需要将网络上下载的fbx模型中的动作&#xff0c;分离成单独的动作模型&#xff0c;经过3天摸爬滚打&#xff0c;先后使用了blender&#xff0c;3d max&#xff0c;unity&#xff0c;最终用blender完成&#xff0c;期间参考了众多网络上大佬…

编译器对连续构造的优化

一&#xff1a;优化的规则 在一行代码中连续进行&#xff1a;构造构造/构造拷贝构造/拷贝构造拷贝构造 都会合二为一 如下&#xff1a; a&#xff1a;构造构造->构造 b&#xff1a;构造拷贝构造->构造 c&#xff1a;拷贝构造拷贝构造->拷贝构造 注意&#xff…

KubeSphere v4 安装指南

日前&#xff0c;KubeSphere v4 发布&#xff0c;相较于之前的版本&#xff0c;新版本在架构上有了颠覆性的变化。为了让社区的各位小伙伴能够丝滑的从旧版本过渡到新版本&#xff0c;我们特别推出本篇安装指南文章&#xff0c;以供参考。 关于 KubeSphere v4 的介绍&#xff…

施磊C++ | 进阶学习笔记 | 5.设计模式

五、设计模式 文章目录 五、设计模式1.设计模式三大类型概述一、创建型设计模式二、结构型设计模式三、行为型设计模式 2.设计模式三大原则3.单例模式1.饿汉单例模式2.懒汉单例模式 4.线程安全的懒汉单例模式1.锁双重判断2.简洁的线程安全懒汉单例模式 5.简单工厂(Simple Facto…

MySQL 8.4修改user的host属性值

MySQL 8.4修改user的host属性值 update mysql.user set host localhost where user mysql用户名; MySQL 8.4修改初始化后的默认密码-CSDN博客文章浏览阅读804次&#xff0c;点赞6次&#xff0c;收藏11次。先下载mysql的zip压缩包&#xff1a;MySQL :: Download MySQL Communi…

(CWRU)轴承故障诊数据集和代码全家桶

包括 完整的CWRU轴承故障数据集&#xff0c; 以及已经生成制作好的一维故障信号数据集、时频图像数据集&#xff0c;对应代码均可以运行 点击下载&#xff1a;数据集和代码全家桶 环境&#xff1a;python 3.9 任何环境安装或者代码问题&#xff0c;请联系作者沟通交流&#xf…

操作符详解(C 语言)

目录 一、操作符的分类二、算数操作符1. 除法操作符2. 取余操作符 三、位移操作符1. 进制2. 原码、反码和补码3. 左移操作符&#xff08;<<&#xff09;和右移操作符&#xff08;>>&#xff09; 四、位操作符1. 按位与 &2. 按位或 |3. 按位异或 ^4. 按位取反 ~…

2018 年 NLP 的 10 个令人兴奋的想法

一、说明 这篇文章收集了有影响力的 10 个想法&#xff0c;我们将来可能会看到更多。 对于每个想法&#xff0c;我们将重点介绍 1-2 篇执行良好的论文。为了保持列表简洁&#xff0c;这里没有涵盖所有相关工作。该列表必然是主观的&#xff0c;涵盖主要与迁移学习和泛化相关的想…

老照片修复工作流教程:用 ComfyUI 轻松还原历史记忆

你是否有过这样的遗憾&#xff1f; 那些珍贵的老照片因为时间的流逝&#xff0c;早已失去了当年的色彩&#xff0c;变得模糊、褪色&#xff0c;甚至破损&#xff1f; 今天带你了解如何使用 ComfyUI 的老照片修复工作流&#xff0c;通过简单的几步操作&#xff0c;在短短十几秒…

三亚旅游微信小程序的设计与实现

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不…

【深度学习代码调试1】环境配置篇(上) -- 安装PyTorch(安利方法:移除所有国内源,使用默认源)

【深度学习代码调试1】环境配置篇 -- 安装TensorFlow和PyTorch 写在最前面1. 创建新的Conda环境2. 安装PyTorch及相关库&#xff08;可以直接跳到2.3安装方法&#xff09;2.1 检查CUDA版本2.2 解决安装过程中常见问题2.2.1 超时问题&#xff08;这个不是最终解决方案&#xff0…

AUTOSAR_EXP_ARAComAPI的5章笔记(13)

☞返回总目录 5.4.7 事件&#xff08;Events&#xff09; 在骨架侧&#xff0c;服务实现负责通知事件的发生。如 5.4.2 RadarService Skeleton Class 所示&#xff0c;骨架为每个事件提供一个事件包装类的成员。骨架的事件包装类与代理的事件包装类看起来明显不同。 在骨架端…

论文阅读:On determining the hinterlands of China‘s foreign trade container ports

集装箱港口腹地的边界线&#xff0c;只要存在&#xff0c;就可以作为未来港口发展和基础设施规划的参考点。在早期划定中国港口腹地的努力中&#xff0c;要么考虑的港口数量有限&#xff0c;要么仅根据港口总吞吐量划定腹地。因此&#xff0c;这些研究都没有让我们清楚地了解共…

快速理解AUTOSAR CP的软件架构层次以及各层的作用

在 AUTOSAR CP 的架构中&#xff0c;软件分为 应用层 (App)、运行时环境 (RTE) 和 基础软件层 (BSW) 三个主要层级。下面是每一层的主要功能与简单的代码示例来展示它们之间的关系。 1. 概述 应用层 (App)&#xff1a;包含应用程序代码&#xff0c;主要实现业务逻辑。应用层通…

DeepFM模型代码详解

直到看到这篇文章&#xff0c;我才搞明白类别特征怎么做lookup的&#xff0c;也看明白了代码逻辑。如果你看完没懂&#xff0c;私信留下wx&#xff0c;给你讲懂。 1、Deepfm 的原理&#xff0c;DeepFM 是一个模型还是代表了一类模型&#xff0c;DeepFM 对 FM 做了什么样的改进…

【时时三省】(C语言基础)函数介绍strcat

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 strcat 字符串追加 示例&#xff1a; 比如我要把world加到hello后面去 就可以用这个 还有一种方法是这样 这两个代码的意思是一样的 只是写法不一样 写的时候要注意这些 •源字符串必须…

DAB-DETR: DYNAMIC ANCHOR BOXES ARE BETTER QUERIES FOR DETR论文笔记

原文链接 [2201.12329] DAB-DETR: Dynamic Anchor Boxes are Better Queries for DETR (arxiv.org)https://arxiv.org/abs/2201.12329 原文笔记 在本文中&#xff0c;我们提出了一种新的查询公式&#xff0c;使用动态锚框进行DETR (DEtection TRansformer)&#xff0c;并对查…

探索人工智能在数学教育上的应用——使用大规模语言模型解决数学问题的潜力和挑战

概述 论文地址&#xff1a;https://arxiv.org/abs/2402.00157 数学推理是人类智能的重要组成部分&#xff0c;人工智能界不断寻求应对数学挑战的方法&#xff0c;而在这一过程中&#xff0c;人工智能的能力需要进一步提高。从文本理解到图像解读&#xff0c;从表格分析到符号操…