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

探索Streamlit在测试领域的高效应用:文档读取与大模型用例生成的完美前奏

大模型用例生成前置工作之文档读取——构建你的自动化测试基础

在群友的极力推荐下,开始了streamlit的学习之旅。本文将介绍如何使用Streamlit开发一个多功能文档处理工具,支持读取、预览、格式转换和导出多种测试相关文档(YAML、JSON、DOCX、PDF、Excel、Markdown),并提供Markdown预览选项,为大模型测试用例生成奠定基础。源码以上传云盘,欢迎下载试用,云盘地址见文章底部截图。


功能概述

  1. 支持的文档格式
    • YAML、JSON、DOCX、PDF、Excel、Markdown
  2. 核心功能
    • 文件上传与预览
    • 转换为Markdown格式预览
    • 格式转换(Excel ↔ JSON/Markdown,JSON ↔ Excel/Markdown)
    • 文件导出为转换后的格式
  3. 测试用例生成预留接口
    • 为后续集成大模型生成测试用例提供数据准备支持

依赖项安装

在开始前,请确保安装以下Python库:

pip install streamlit pandas openpyxl python-docx pdfminer.six PyYAML markdown2

完整代码实现

import streamlit as st
import pandas as pd
import yaml
from docx import Document
from pdfminer.high_level import extract_text
from markdown2 import markdown
import base64
from io import BytesIO# 主标题与副标题
st.title("文档处理工具:大模型测试用例生成的前置准备")
st.subheader("支持YAML/JSON/DOCX/PDF/Excel/Markdown的读取、预览与格式转换")def file_uploader_section():"""文件上传与基本信息显示"""uploaded_file = st.file_uploader("上传文件",type=["yml", "json", "docx", "pdf", "xlsx", "md"],accept_multiple_files=False)if uploaded_file:st.write(f"文件名:{uploaded_file.name}")st.write(f"文件类型:{uploaded_file.type}")st.write(f"文件大小:{uploaded_file.size/1024:.2f} KB")return uploaded_filedef file_reader(file):"""根据文件类型读取内容并转换为字符串"""content = ""file_type = file.name.split('.')[-1]if file_type == 'yml':content = yaml.safe_load(file)content = yaml.dump(content)  # 转为字符串elif file_type == 'json':df = pd.read_json(file)content = df.to_string(index=False)elif file_type == 'docx':doc = Document(file)paragraphs = [para.text for para in doc.paragraphs]content = '\n'.join(paragraphs)elif file_type == 'pdf':content = extract_text(file)elif file_type == 'xlsx':df = pd.read_excel(file)content = df.to_string(index=False)elif file_type == 'md':content = file.read().decode()return contentdef format_converter(content, convert_to_md):"""将文本转换为Markdown格式"""if convert_to_md:return markdown(content)else:return contentdef file_exporter(file, converted_data, export_format):"""生成文件导出链接"""buffer = BytesIO()if export_format == "Original":file.seek(0)data = file.read()elif export_format == "JSON":if file.name.endswith('.xlsx'):df = pd.read_excel(file)data = df.to_json(orient='records').encode()else:st.error("仅Excel支持导出为JSON")return Noneelif export_format == "Markdown":if isinstance(converted_data, str):data = converted_data.encode()else:data = converted_data.to_markdown().encode()elif export_format == "Excel":if file.name.endswith('.json'):df = pd.read_json(file)df.to_excel(buffer, index=False)data = buffer.getvalue()else:st.error("仅JSON支持导出为Excel")return Noneelse:st.error("无效格式")return Noneb64 = base64.b64encode(data).decode()href = f'<a href="data:file/{export_format.lower()};base64,{b64}" ' \f'download="{file.name}.{export_format.lower()}">下载文件</a>'return hrefdef conversion_options(file_type):"""根据文件类型生成转换选项"""options = ["Original"]if file_type == 'xlsx':options += ["JSON", "Markdown"]elif file_type == 'json':options += ["Excel", "Markdown"]return optionsdef main():uploaded_file = file_uploader_section()if uploaded_file:content = file_reader(uploaded_file)file_type = uploaded_file.name.split('.')[-1]# 文档预览with st.expander("文档预览"):convert_to_md = st.checkbox("转换为Markdown格式预览")converted_content = format_converter(content, convert_to_md)if convert_to_md:st.markdown(converted_content, unsafe_allow_html=True)else:st.text(converted_content)# 格式转换与导出with st.expander("格式转换与导出"):options = conversion_options(file_type)selected_format = st.selectbox("选择导出格式", options)if selected_format != "Original":export_link = file_exporter(uploaded_file, converted_content, selected_format)if export_link:st.markdown(export_link, unsafe_allow_html=True)# 测试用例生成预留接口with st.expander("测试用例生成(预留)"):st.write("该功能需要集成NLP模型实现,当前版本暂不支持")if __name__ == "__main__":main()

代码分块详解

1. 文件上传与基本信息显示

def file_uploader_section():uploaded_file = st.file_uploader("上传文件",type=["yml", "json", "docx", "pdf", "xlsx", "md"],accept_multiple_files=False)if uploaded_file:st.write(f"文件名:{uploaded_file.name}")st.write(f"文件类型:{uploaded_file.type}")st.write(f"文件大小:{uploaded_file.size/1024:.2f} KB")return uploaded_file
  • 功能:提供文件上传入口,显示文件名、类型和大小

  • 关键点

    • st.file_uploader支持指定文件类型
    • accept_multiple_files=False限制单次上传一个文件
  • 上传一个EXCEL文档
    在这里插入图片描述


2. 文件内容读取与解析

def file_reader(file):content = ""file_type = file.name.split('.')[-1]if file_type == 'yml':content = yaml.safe_load(file)content = yaml.dump(content)  # 转为字符串elif file_type == 'json':df = pd.read_json(file)content = df.to_string(index=False)# 其他文件类型处理...return content
  • 功能:根据文件类型解析内容并返回字符串

  • 关键点

    • 使用pandas处理Excel/JSON的表格数据
    • yaml.dump()将YAML对象转为字符串便于后续处理
  • 文档预览
    在这里插入图片描述


3. Markdown格式转换

def format_converter(content, convert_to_md):if convert_to_md:return markdown(content)else:return content
  • 功能:将文本内容转换为Markdown格式
  • 依赖库markdown2实现文本到Markdown的渲染

4. 文件导出功能

def file_exporter(file, converted_data, export_format):buffer = BytesIO()if export_format == "JSON":if file.name.endswith('.xlsx'):df = pd.read_excel(file)data = df.to_json(orient='records').encode()else:st.error("仅Excel支持导出为JSON")return Noneelif export_format == "Excel":if file.name.endswith('.json'):df = pd.read_json(file)df.to_excel(buffer, index=False)data = buffer.getvalue()else:st.error("仅JSON支持导出为Excel")return None# ...其他格式处理...b64 = base64.b64encode(data).decode()href = f'<a ...>下载文件</a>'return href
  • 功能:生成文件导出链接
  • 关键点
    • 使用base64编码生成可下载的文件流
    • 支持Excel ↔ JSON/Markdown、JSON ↔ Excel/Markdown的双向转换
  • Excel ↔ JSON
[{"Test Name":"用例A","Status":"Pass","Execution Time":1744365600000,"Failure Reason":null,"Duration (s)":5,"Tester":"测试A","Environment":"Test","Version":"v1.0"},{"Test Name":"用例B","Status":"Fail","Execution Time":1744365900000,"Failure Reason":"请求超时","Duration (s)":3,"Tester":"测试A","Environment":"Test","Version":"v1.0"}
]

5. 格式转换选项

def conversion_options(file_type):options = ["Original"]if file_type == 'xlsx':options += ["JSON", "Markdown"]elif file_type == 'json':options += ["Excel", "Markdown"]return options
  • 功能:根据文件类型动态生成转换选项
  • 支持的转换
    • Excel → JSON/Markdown
    • JSON → Excel/Markdown

6. 主函数逻辑

def main():uploaded_file = file_uploader_section()if uploaded_file:content = file_reader(uploaded_file)file_type = uploaded_file.name.split('.')[-1]# 预览部分with st.expander("文档预览"):convert_to_md = st.checkbox("转换为Markdown格式预览")converted_content = format_converter(content, convert_to_md)# 显示预览内容# 转换与导出部分with st.expander("格式转换与导出"):options = conversion_options(file_type)selected_format = st.selectbox("选择导出格式", options)if selected_format != "Original":export_link = file_exporter(...)st.markdown(export_link, unsafe_allow_html=True)# 测试用例生成预留with st.expander("测试用例生成(预留)"):st.write("该功能需要集成NLP模型实现,当前版本暂不支持")
  • 功能:整合所有模块并组织界面
  • 关键点
    • 使用st.expander折叠功能区域,提升界面整洁度
    • 预留测试用例生成扩展位置

使用示例

  1. 运行应用
    streamlit run document_tool.py
    
  2. 界面操作
    • 上传文件 → 查看文件信息 → 预览内容 → 选择导出格式 → 下载文件

扩展建议

  1. 测试用例生成功能

    • 集成deepseek-r1模型
    • 根据文档内容生成功能测试用例或接口测试用例
  2. 用户体验优化

    • 添加文件内容搜索功能
    • 支持多文件批量处理

通过本文的工具,测试工程师可以高效地完成文档预处理工作,为大模型驱动的自动化测试奠定基础。代码完整且可直接运行,适合快速集成到现有测试流程中。源码获取路径:
在这里插入图片描述

在这里插入图片描述

相关文章:

探索Streamlit在测试领域的高效应用:文档读取与大模型用例生成的完美前奏

大模型用例生成前置工作之文档读取——构建你的自动化测试基础 在群友的极力推荐下&#xff0c;开始了streamlit的学习之旅。本文将介绍如何使用Streamlit开发一个多功能文档处理工具&#xff0c;支持读取、预览、格式转换和导出多种测试相关文档&#xff08;YAML、JSON、DOCX…...

Python中数值计算、表格处理和可视化的应用

1.数值计算&#xff1a;Numpy import numpy as np 1.1创建数组 import numpy as np arr1 np.array([[1,2,3,4,5]]) print(arr1) print(type(arr1)) print("数组形状",arr1.shape) arr2 np.array([[1,2,3],[2,3,4]]) print(arr2) print(type(arr1)) print("…...

【数据可视化艺术·实战篇】视频AI+人流可视化:如何让数据“动”起来?

景区游玩&#xff0c;密密麻麻全是人&#xff0c;想找个拍照的好位置都难&#xff1b;上下班高峰挤地铁&#xff0c;被汹涌的人潮裹挟着&#xff0c;只能被动 “随波逐流”。这样的场景&#xff0c;相信很多人都再熟悉不过。其实&#xff0c;这些看似杂乱无章的人群流动现象&am…...

038-flatbuffers

flatbuffers FlatBuffers技术调研报告 一、核心原理与优势 FlatBuffers通过内存直接访问技术实现零拷贝序列化&#xff0c;其核心优势如下&#xff1a; 内存布局&#xff1a;数据以连续二进制块存储&#xff0c;包含VTable&#xff08;虚拟表&#xff09;和Data Object&…...

探索 Go 与 Python:性能、适用场景与开发效率对比

1 性能对比&#xff1a;执行速度与资源占用 1.1 Go 的性能优势 Go 语言被设计为具有高效的执行速度和低资源占用。它编译后生成的是机器码&#xff0c;能够直接在硬件上运行&#xff0c;避免了 Python 解释执行的开销。 以下是一个用 Go 实现的简单循环计算代码&#xff1a; …...

Pinia最基本用法

1. 定义 Store 首先&#xff0c;定义一个 Pinia Store&#xff0c;使用组合式 API 风格和 ref 来管理状态。 示例&#xff1a;stores/ids.js import { defineStore } from pinia; import { ref } from vue;export const useIdsStore defineStore(ids, () > {const ids …...

MySQL中的UNION和UNION ALL【简单易懂】

一、前言 UNION 和 UNION ALL 是 SQL 中用于合并多个查询结果集的关键字。 二、核心作用 两者均用于将多个 SELECT 语句的结果集纵向合并&#xff08;列结构需相同&#xff09;&#xff0c;但行为存在关键差异&#xff1a; 三、使用场景对比 需要去重时&#xff1a;例如合并…...

ConcurrentHashMap 源码分析

摘要 介绍线程安全集合类 ConcurrentHashMap 源码&#xff0c;包括扩容&#xff0c;协助扩容&#xff0c;红黑树节点读写线程同步&#xff0c;插入元素后累加键值对数量操作原子性实现。 1 成员变量及其对应的数据结构 底层由数组红黑树链表实现volatile long baseCount 和 v…...

一种基于学习的多尺度方法及其在非弹性碰撞问题中的应用

A learning-based multiscale method and its application to inelastic impact problems 摘要&#xff1a; 我们在工程应用中观察和利用的材料宏观特性&#xff0c;源于电子、原子、缺陷、域等多尺度物理机制间复杂的相互作用。多尺度建模旨在通过利用固有的层次化结构来理解…...

【DE2-115】Verilog实现DDS+Quartus仿真波形

【DE2-115】Verilog实现DDSQuartus仿真波形 一、任务要求二、实现步骤2.1 相位累加器2.2 波形存储器ROM2.2.1 方波模块2.2.2 正弦波形存储器 2.3 3锁相环倍频电路2.4 顶层电路设计 三、设计实现四、实验总结 一、任务要求 采用数字频率合成&#xff08;Direct Digital Frequen…...

StickyNotes,简单便签超实用

日常工作中是不是经常需要记点东西&#xff0c;但又不想用太复杂的工具&#xff1f;今天给你推荐一款超简单的桌面便签软件——StickyNotes。 下面是动图&#xff1a; 简单到极致的便签工具 StickyNotes真的是简单到不能再简单了。打开软件&#xff0c;直接输入你的便签内容&a…...

深度探索 C 语言:指针与内存管理的精妙艺术

C 语言作为一门历史悠久且功能强大的编程语言&#xff0c;以其高效的性能和灵活的底层控制能力&#xff0c;在计算机科学领域占据着举足轻重的地位。 指针和内存管理是 C 语言的核心特性&#xff0c;也是其最具挑战性和魅力的部分。深入理解指针与内存管理&#xff0c;不仅能够…...

【C++】深拷贝与浅拷贝

重开也不是不可能 ~.~ 浅拷贝 #include <iostream> #include <cstring>class ShallowCopyExample { public:int m_nValue;int* m_pData;// 构造函数&#xff0c;初始化指针成员ShallowCopyExample(int value) : m_nValue(value) {m_pData new int(0);*m_pData va…...

【3】k8s集群管理系列--包应用管理器helm之chart资源打包并推送到harbor镜像仓库

一、chart资源打包 helm package ./web-chart # 当前目录会生成一个tgz的压缩文件二、安装help push插件&#xff08;用于推送前面打包的文件&#xff0c;到镜像仓库&#xff09; .1 下载help-push二进制文件 wget https://github.com/chartmuseum/helm-push/releases/down…...

React与Vue:选择哪个框架入门?

React与Vue&#xff1a;选择哪个框架入门&#xff1f; 作为前端开发者&#xff0c;我在React和Vue两个框架间切换多次&#xff0c;常被新手问到应该从哪个入手。不同于网上那些详尽的技术比较&#xff0c;这里我想从实用角度给你一个简明对比。 两大框架核心差异 特性ReactV…...

pycharm已有python3.7,如何新增Run Configurations中的Python interpreter为python 3.9

在 PyCharm 中&#xff0c;如果你已经安装了 Python 3.9&#xff0c;并且希望在 Run Configurations 中新增一个 Python 3.9 的解释器&#xff0c;可以按照以下步骤操作&#xff1a; 步骤 1&#xff1a;打开 PyCharm 设置 点击 PyCharm 左上角的 File 菜单。选择 Settings&am…...

STL之迭代器(iterator)

迭代器的基本概念 迭代器(iterator)模式又称为游标(Cursor)模式&#xff0c;用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。或者这样说可能更容易理解&#xff1a;Iterator模式是运用于聚合对象的一种模式&#xff0c;通过运用该模式&#…...

Mysql5.7配置文件

Mysql5.7配置文件 初始化数据库之前修改my.cnf----配置持久化键(persistence key) 初始化数据库之前修改my.cnf----配置持久化键(persistence key) 使用utf8mb4而不是utf8&#xff1a; https://blog.csdn.net/omaidb/article/details/106481406 https://blog.csdn.net/fdipzo…...

HarmonyOS-ArkUI V2装饰器: @Provider和@Consumer装饰器:跨组件层级双向同步

作用 我们在之前学习的那些控件中,各有特点,也各有缺陷,至今没有痛痛快快的出现过真正能跨组件的双向绑定的装饰器。 比如 @Local装饰器,不能跨组件@Param装饰器呢,能跨组件传递,但是仅仅就是下一层组件接收参数。另外,它是单向传递,不可被重新赋值。如果您非要改值则…...

【HarmonyOS 5】敏感信息本地存储详解

【HarmonyOS 5】敏感信息本地存储详解 前言 鸿蒙其实自身已经通过多层次的安全机制&#xff0c;确保用户敏感信息本地存储安全。不过再此基础上&#xff0c;用户敏感信息一般三方应用还需要再进行加密存储。 本文章会从鸿蒙自身的安全机制进行展开&#xff0c;最后再说明本地…...

0x03.Redis 通常应用于哪些场景?

回答重点 1)缓存(Cache): Redis 最常用的场景是作为缓存层,以减少数据库的负载,提高数据读取速度。例如,常用的用户会话数据和页面渲染结果可以存储在 Redis 中。2)分布式锁(Distributed Lock): Redis 可以用作分布式锁的实现,确保在分布式系统中资源的安全访问,避免…...

Keil创建自定义的STM32标准库工程

注&#xff1a;以下工程创建将以STM32F103ZET6为例 1 下载需要的资料包 1.1 下载 Keil 的 STM32F103 芯片支持包 1.1.1 手动下载安装包 Keil官网&#xff1a;https://www.keil.com/ &#xff08;1&#xff09;进入官网&#xff0c;点击 Download。 &#xff08;2&#xf…...

React(1)基础入门

React(1)基础入门 Author: Once Day Date: 2025年4月10日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: FullStack开发_Once-Day的博客-CSDN博客 …...

Mysql8配置文件

Mysql8配置文件 修改my.cnf----配置持久化键(persistence key)配置表名不区分大小写 修改my.cnf----配置持久化键(persistence key) MySQL8初始化数据库之前配置好这些变量值&#xff0c;初始化数据库之后可能无法修改这个值。 # 服务端配置 [mysqld] ######## 数据目录和基…...

c/c++ 使用libgeotiff读取全球高程数据ETOPO

#include <geotiff.h> #include <geotiffio.h> #include <tiffio.h> #include <iostream> #include <xtiffio.h> void MyTIFFErrorHandler(const char* module, const char* fmt, va_list args) {// 格式化错误消息char buffer[1024];vsnprintf(…...

Spring Boot集成Nacos

1. 添加依赖 在pom.xml文件中添加Nacos相关依赖。根据Spring Boot版本选择合适的依赖版本&#xff1a; Spring Boot 3.2.x版本 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artif…...

CAP理论 与 BASE理论

一、分布式系统存在的问题 1.分布式系统 20世纪90年代&#xff0c;随着互联网应用的快速扩张&#xff0c;传统单机系统难以支撑高并发、跨地域的数据处理需求。分布式系统&#xff08;Distributed System&#xff09; 逐渐成为主流架构&#xff0c;分布式系统是由多台计算机&…...

C++(21)—类和对象(下) ⑥匿名对象

文章目录 一、匿名对象的定义与基本特性二、匿名对象与有名对象的对比1. 有名对象2. 匿名对象 三、匿名对象的构造与析构时机1. 构造与析构规则2. 示例分析 四、匿名对象的适用场景1. 临时调用对象方法2. 作为函数参数 五、总结 一、匿名对象的定义与基本特性 匿名对象&#x…...

Go环境变量配置

Go环境变量配置 一、下载 进入The Go Programming Language 点击下载对应操作系统的 安装成功界面如下图,默认安装到: usr/local/go/ 安装完成之后&#xff0c;在终端运行 go version&#xff0c;如果显示类似下面的信息&#xff0c;表明安装成功&#xff08;备注:darwin(其实…...

AI推理强,思维模型也有功劳【58】二八定律思维

giszz的理解&#xff1a;二八定律&#xff0c;我们说的和听的都比较多。20%的关键&#xff0c;是事物本质&#xff0c;做人不要贪心&#xff0c;也不要胡子眉毛一把抓。当然&#xff0c;也不要轻视那80%。 一、定义 二八定律思维模型&#xff0c;也被称为帕累托法则&#xff0…...

文件上传靶场

文件上传靶场 项目结构 upload-lab/ ├── Dockerfile └── www├── index.php└── upload└── flag.txt执行命令流程&#xff08;逐行执行&#xff09; 创建目录结构 # 创建目录结构 mkdir upload-lab;cd upload-lab mkdir -p www/upload# 创建flag文件 echo &qu…...

RV1106 OCR 识别算法

一 题记 目标是在某款 RV1106 低算力小板下跑通OCR文字识别算法&#xff0c;做个简单的应用&#xff0c;RK 官方模型库rk_model_zoo 有PP-OCR 的例子&#xff0c;但在 rv1106 上尚未支持。于是便打算折腾一吧。 二 方案甄选 参考国外某大佬的比较&#xff1a; 对比了几种方案…...

Linux实现翻译以及群通信功能

1.翻译功能实现 UdpServer.hpp文件 构造函数 接收一个端口号和一个回调函数&#xff0c;回调函数是传入一个执行方法&#xff0c;比如翻译方法。 UdpServer(uint16_t port,func_t func):_sockfd(defaultfd),_port(port),_isrunning(false),_func(func){}Init函数 首先创建了…...

[MRCTF2020]ezpop wp

本题考点:php反序列化的pop链 首先来了解一下pop链是什么,它类似于多米诺骨牌一环套一环,要调用这个成员方法然后去找能调用这个方法的魔术方法,最后一环接一环,完成一个链子,最终形成payload。 那么来了解一下这些魔术方法 __construct() //类的构造函数&#xff0…...

机器学习入门之Sklearn基本操作

、 Sklearn全称:Scipy-toolkit Learn是 一个基于scipy实现的的开源机器学习库。它提供了大量的算法和工具&#xff0c;用于数据挖掘和数据分析&#xff0c;包括分类、回归、聚类等多种任务。本文我将带你了解并入门Sklearn在机器学习中的基本用法。 获取方式 pip install sc…...

(二十二)安卓开发中的数据存储之SQLite简单使用

在Android开发中&#xff0c;SQLite是一种非常常用的数据库存储方式。它轻量、简单&#xff0c;非常适合移动设备上的数据管理。本文将通过通俗易懂的语言&#xff0c;结合代码示例和具体场景&#xff0c;详细讲解SQLite在Android中的使用。 1. 什么是SQLite? SQLite是一个开…...

docker compose搭建博客wordpress

一、前言 docker安装等入门知识见我之前的这篇文章 https://blog.csdn.net/m0_73118788/article/details/146986119?fromshareblogdetail&sharetypeblogdetail&sharerId146986119&sharereferPC&sharesourcem0_73118788&sharefromfrom_link 1.1 docker co…...

信息学奥赛一本通 1498:Roadblocks | 洛谷 P2865 [USACO06NOV] Roadblocks G

【题目链接】 ybt 1498&#xff1a;Roadblocks 洛谷 P2865 [USACO06NOV] Roadblocks G 【题目考点】 1. 图论&#xff1a;严格次短路径 严格次短路的路径长度必须大于最短路的路径长度。 非严格次短路的路径长度大于等于最短路的路径长度。 【解题思路】 每个交叉路口是一…...

学习笔记—C++—类和对象(三)

目录 类和对象 再探构造函数 类型转换 隐式类型转换 显式类型转换 C语言风格类型转换 C风格类型转换 static_cast dynamic_cast const_cast reinterpret_cast static成员 友元 友元函数 友元类 友元成员函数 内部类 匿名对象 匿名对象的使用场景&#xff1a;…...

句句翻译。

对这些单词整理&#xff0c;格式为&#xff1a;“overall /əʊvərɔːl/ adj.全面的,综合的,总体的adv.全部,总 计,一般来说,大致上,总体上n.外套,罩衣,工装连衣裤,工装 服 ” 4,4 A review published in January in Experimental Dermatology found that ceramide made sk…...

LeetCode 2999.统计强大整数的数目:上下界数位DP

【LetMeFly】2999.统计强大整数的数目&#xff1a;上下界数位DP 力扣题目链接&#xff1a;https://leetcode.cn/problems/count-the-number-of-powerful-integers/ 给你三个整数 start &#xff0c;finish 和 limit 。同时给你一个下标从 0 开始的字符串 s &#xff0c;表示一…...

具身导航中的视觉语言注意力蒸馏!Vi-LAD:实现动态环境中的社会意识机器人导航

作者&#xff1a;Mohamed Elnoor 1 ^{1} 1, Kasun Weerakoon 1 ^{1} 1, Gershom Seneviratne 1 ^{1} 1, Jing Liang 2 ^{2} 2, Vignesh Rajagopal 3 ^{3} 3, and Dinesh Manocha 1 , 2 ^{1,2} 1,2单位&#xff1a; 1 ^{1} 1马里兰大学帕克分校电气与计算机工程系&#xff0c; 2…...

FreeRTOS入门与工程实践-基于STM32F103(一)(单片机程序设计模式,FreeRTOS源码概述,内存管理,任务管理,同步互斥与通信,队列,信号量)

裸机程序设计模式 裸机程序的设计模式可以分为&#xff1a;轮询、前后台、定时器驱动、基于状态机。前面三种方法都无法解决一个问题&#xff1a;假设有A、B两个都很耗时的函数&#xff0c;无法降低它们相互之间的影响。第4种方法可以解决这个问题&#xff0c;但是实践起来有难…...

算法思想之位运算(二)

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;算法思想之位运算(二) 发布时间&#xff1a;2025.4.13 隶属专栏&#xff1a;算法 目录 滑动窗口算法介绍六大基础位运算符常用模板总结 例题判定字符是否唯一题目链接题目描述算法思路代码实现 汉明距离题目链接题目…...

软考笔记day04

寻址方式 CISC RISC 流水线技术 存储系统 1、层次化存储系统 2、Cache 3、主存编址计算 输入输出技术 I/O 总线...

本地电脑如何连接windows云服务器

进行远程连接需要几个数据&#xff1a;用户名、密码、公网IP 打开本地cmd&#xff0c;输入命令mstsc打开远程连接面板&#xff0c; 在计算机输入框中输入云服务器的IP地址 点击“选项”展开&#xff0c;点击“本地资源”&#xff0c;然后点击“详细信息” 用户名通常为admin…...

Linux内核常见的调度策略

在 Linux 内核中&#xff0c;调度策略决定了任务如何被分配 CPU 时间以及任务之间的优先级关系。以下是五种常见的调度策略&#xff1a;STOP、DL&#xff08;Deadline&#xff09;、RT&#xff08;Real-Time&#xff09;、CFS&#xff08;Completely Fair Scheduler&#xff09…...

【Linux】进程优先级、进程切换、进程调度

Linux 1.进程优先级1.基本概念2.查看进程1.UID2.PRI、NI3.修改优先级&#xff08;PRI&#xff09; 3.竞争、独立、并行、并发 2.进程切换3.进程调度1.活动队列2.过期队列3.active、expired指针 1.进程优先级 1.基本概念 优先级&#xff1a;进程得到 CPU 资源分配的先后顺序。优…...

HCIP第十二天

LSA --- 链路状态通告 链路状态类型&#xff0c;链路状态ID&#xff0c;通告路由器 --- LSA的三元组 --- 可以唯一的标识出一条LSA Type --- OSPFv2中&#xff0c;常见的需要掌握LSA有6种 LS ID --- LSA的名字 --- 因为每一种LSA LS ID的生成方式都不相同&#xff0c;所以&am…...

Magnet Pro Macbook窗口分屏管理软件【提高效率工具】

Magnet Pro Macbook窗口分屏管理软件【提高效率工具】 一、介绍 Magnet Pro for Mac&#xff0c;是一款功能强大的窗口分屏管理软件&#xff0c;具有多种布局模式、窗口布局功能和其他工具&#xff0c;可以帮助您高效地进行多任务处理和管理工作。 拖动窗口到边缘&#xff0c…...