【2024年华为OD机试】(C卷,100分)- 字符串筛选排序 (Java JS PythonC/C++)
一、问题描述
题目描述
输入一个由N个大小写字母组成的字符串
按照ASCII码值从小到大进行排序
查找字符串中第K个最小ASCII码值的字母 (k >= 1)
输出该字母所在字符串中的位置索引 (字符串的第一个位置索引为0)
k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引
如果有重复字母则输出字母的最小位置索引
输入描述
第一行输入一个由大小写字母组成的字符串
第二行输入k,k必须大于0,k可以大于输入字符串的长度
输出描述
输出字符串中第K个最小ASCII码值的字母所在字符串的位置索引
k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引
如果第K个最小ASCII码值的字母存在重复,则输出该字母的最小位置索引
用例
用例 1
输入:
AbCdeFG
3
输出:
5
说明:
根据ASCII码值排序,第三个ASCII码值的字母为F
F在字符串中位置索引为5 (0为字符串的第一个字母位置索引)
用例 2
输入:
fAdDAkBbBq
4
输出:
6
说明:
根据ASCII码值排序前4个字母为AABB由于B重复则只取B的第一个最小位置索引6
而不是第二个B的位置索引8
题目解析
本题是简单的字符串操作题。
2023.05.20 补充了第二个用例
根据第二个用例来看,题目要找的第k个,不是去重+升序后的第k个,而只是排序后的第k个。
详细步骤
-
读取输入:
- 读取一个由大小写字母组成的字符串
s
。 - 读取一个整数
k
。
- 读取一个由大小写字母组成的字符串
-
创建字符索引映射:
- 创建一个字典
char_index
,键为字符,值为该字符在字符串中的最小索引。 - 遍历字符串
s
,记录每个字符的最小索引。
- 创建一个字典
-
排序字符:
- 将字符串
s
中的字符按ASCII码值排序,得到排序后的字符列表sorted_chars
。
- 将字符串
-
查找第K个字符:
- 如果
k
大于字符串长度,取最大ASCII码值的字符。 - 否则,取排序后第
k
个字符。
- 如果
-
输出结果:
- 输出该字符在字符串中的最小位置索引。
用例解释
用例 1
- 输入:
s = "AbCdeFG"
k = 3
- 输出:
5
解释:
- 按ASCII码值排序后的字符列表:
['A', 'C', 'd', 'e', 'F', 'G', 'b']
- 第3个字符是
F
,其在字符串中的位置索引为 5。
用例 2
- 输入:
s = "fAdDAkBbBq"
k = 4
- 输出:
6
解释:
- 按ASCII码值排序后的字符列表:
['A', 'A', 'B', 'B', 'B', 'D', 'D', 'f', 'k', 'q']
- 第4个字符是
B
,其在字符串中的最小位置索引为 6。
通过上述步骤,我们可以高效地求出第K个最小ASCII码值的字母在字符串中的位置索引。这种方法的时间复杂度为 O(n log n)
,其中 n
是字符串的长度。
二、JavaScript算法源码
以下是 JavaScript 代码的详细中文注释和逻辑讲解:
JavaScript 代码
/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline"); // 引入 readline 模块,用于读取控制台输入// 创建 readline 接口
const rl = readline.createInterface({input: process.stdin, // 输入流为标准输入output: process.stdout, // 输出流为标准输出
});// 存储输入行的数组
const lines = [];// 监听输入事件
rl.on("line", (line) => {lines.push(line); // 将每一行输入存入 lines 数组// 当输入行数为 2 时,表示输入完成if (lines.length === 2) {const [str, k] = lines; // 解构赋值,获取输入的两行数据// 调用算法函数并输出结果console.log(getKIndex(str, k));// 清空 lines 数组,以便处理下一组输入lines.length = 0;}
});// 算法函数:获取字符串中第 k 小的字符的索引
function getKIndex(str, k) {// 如果 k 大于字符串长度,则将 k 设置为字符串长度if (k > str.length) k = str.length;// 将字符串转换为数组,排序后获取第 k 小的字符const tar = [...str].sort()[k - 1];// 返回该字符在原字符串中的索引return str.indexOf(tar);
}
代码逻辑讲解
1. 输入处理
- 使用
readline
模块读取控制台输入。 - 将每一行输入存入
lines
数组。 - 当
lines
数组的长度为 2 时,表示输入完成,开始处理数据。
2. 算法逻辑
- 函数
getKIndex
:- 参数:
str
:输入的字符串。k
:表示需要查找的第k
小的字符。
- 逻辑:
- 如果
k
大于字符串长度,则将k
设置为字符串长度(避免越界)。 - 将字符串转换为数组,并对数组进行排序。
- 获取排序后数组中第
k - 1
个字符(因为数组索引从 0 开始)。 - 返回该字符在原字符串中的索引。
- 如果
- 参数:
3. 示例验证
示例 1:
- 输入:
hello 3
- 处理过程:
- 将字符串
"hello"
转换为数组:['h', 'e', 'l', 'l', 'o']
。 - 对数组排序:
['e', 'h', 'l', 'l', 'o']
。 - 获取第 3 小的字符:
'l'
。 - 返回
'l'
在原字符串中的索引:2
。
- 将字符串
- 输出:
2
。
示例 2:
- 输入:
world 5
- 处理过程:
- 将字符串
"world"
转换为数组:['w', 'o', 'r', 'l', 'd']
。 - 对数组排序:
['d', 'l', 'o', 'r', 'w']
。 - 获取第 5 小的字符:
'w'
。 - 返回
'w'
在原字符串中的索引:0
。
- 将字符串
- 输出:
0
。
总结
- 功能:在给定字符串
str
和整数k
的情况下,找到字符串中第k
小的字符,并返回其索引。 - 核心逻辑:
- 将字符串转换为数组并排序。
- 获取排序后数组中第
k - 1
个字符。 - 返回该字符在原字符串中的索引。
- 适用场景:需要查找字符串中第
k
小的字符及其索引的场景。 - 注意事项:
- 如果
k
大于字符串长度,则k
会被设置为字符串长度。 - 时间复杂度为
O(n log n)
,其中n
是字符串长度(排序操作的时间复杂度)。
- 如果
如果有其他问题,欢迎随时提问!
三、Java算法源码
以下是对代码的详细中文注释和讲解:
import java.util.Arrays; // 导入Arrays类,用于数组操作
import java.util.Scanner; // 导入Scanner类,用于从控制台读取输入public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in); // 创建Scanner对象,用于读取用户输入String str = sc.next(); // 读取用户输入的字符串int k = sc.nextInt(); // 读取用户输入的整数kSystem.out.println(getResult(str, k)); // 调用getResult方法并输出结果}public static int getResult(String str, int k) {char[] chars = str.toCharArray(); // 将字符串转换为字符数组Arrays.sort(chars); // 对字符数组进行排序,按字典序升序排列if (k > str.length()) k = str.length(); // 如果k大于字符串长度,则将k设置为字符串长度char tar = chars[k - 1]; // 获取排序后字符数组中的第k个字符(索引为k-1)return str.indexOf(tar); // 返回该字符在原字符串中的索引位置}
}
代码讲解:
-
导入类库:
import java.util.Arrays;
:导入Arrays
类,用于对数组进行排序等操作。import java.util.Scanner;
:导入Scanner
类,用于从控制台读取用户输入。
-
主方法
main
:Scanner sc = new Scanner(System.in);
:创建一个Scanner
对象,用于读取用户输入。String str = sc.next();
:读取用户输入的字符串。int k = sc.nextInt();
:读取用户输入的整数k
。System.out.println(getResult(str, k));
:调用getResult
方法,并将结果输出到控制台。
-
getResult
方法:char[] chars = str.toCharArray();
:将输入的字符串str
转换为字符数组chars
。Arrays.sort(chars);
:对字符数组chars
进行排序,排序后字符数组中的字符按字典序升序排列。if (k > str.length()) k = str.length();
:如果输入的k
大于字符串的长度,则将k
设置为字符串的长度,防止数组越界。char tar = chars[k - 1];
:获取排序后字符数组中的第k
个字符(由于数组索引从0开始,所以是k-1
)。return str.indexOf(tar);
:返回该字符在原字符串str
中的索引位置。
代码功能总结:
- 该程序的功能是:给定一个字符串和一个整数
k
,程序会先对字符串中的字符进行排序,然后找到排序后的第k
个字符,并返回该字符在原字符串中的索引位置。
示例:
假设输入字符串为"hello"
,k
为3
:
- 将字符串转换为字符数组:
['h', 'e', 'l', 'l', 'o']
。 - 对字符数组进行排序:
['e', 'h', 'l', 'l', 'o']
。 - 取第
3
个字符(索引为2
):'l'
。 - 返回
'l'
在原字符串"hello"
中的索引位置:2
。
因此,程序输出为2
。
希望这个解释对您理解代码有所帮助!
四、Python算法源码
以下是对代码的详细中文注释和讲解:
# 输入获取
s = input() # 从控制台读取用户输入的字符串
k = int(input()) # 从控制台读取用户输入的整数k# 算法入口
def getResult(s, k):chars = list(s) # 将字符串s转换为字符列表chars.sort() # 对字符列表进行排序,按字典序升序排列if k > len(s): # 如果k大于字符串的长度k = len(s) # 将k设置为字符串的长度,防止越界tar = chars[k - 1] # 获取排序后字符列表中的第k个字符(索引为k-1)return s.index(tar) # 返回该字符在原字符串s中的索引位置# 调用算法
print(getResult(s, k)) # 调用getResult函数并输出结果
代码讲解:
-
输入获取:
s = input()
:从控制台读取用户输入的字符串,并赋值给变量s
。k = int(input())
:从控制台读取用户输入的整数,并赋值给变量k
。
-
getResult
函数:chars = list(s)
:将字符串s
转换为字符列表chars
。chars.sort()
:对字符列表chars
进行排序,排序后字符列表中的字符按字典序升序排列。if k > len(s): k = len(s)
:如果输入的k
大于字符串的长度,则将k
设置为字符串的长度,防止索引越界。tar = chars[k - 1]
:获取排序后字符列表中的第k
个字符(由于列表索引从0开始,所以是k-1
)。return s.index(tar)
:返回该字符在原字符串s
中的索引位置。
-
调用算法:
print(getResult(s, k))
:调用getResult
函数,并将结果输出到控制台。
代码功能总结:
- 该程序的功能是:给定一个字符串和一个整数
k
,程序会先对字符串中的字符进行排序,然后找到排序后的第k
个字符,并返回该字符在原字符串中的索引位置。
示例:
假设输入字符串为"hello"
,k
为3
:
- 将字符串转换为字符列表:
['h', 'e', 'l', 'l', 'o']
。 - 对字符列表进行排序:
['e', 'h', 'l', 'l', 'o']
。 - 取第
3
个字符(索引为2
):'l'
。 - 返回
'l'
在原字符串"hello"
中的索引位置:2
。
因此,程序输出为2
。
注意事项:
- 索引从0开始:
- Python中的列表索引从0开始,因此第
k
个字符的索引是k-1
。
- Python中的列表索引从0开始,因此第
- 越界处理:
- 如果
k
大于字符串的长度,程序会将k
设置为字符串的长度,避免索引越界。
- 如果
- 字符重复:
- 如果字符串中有重复字符,
s.index(tar)
会返回第一个匹配字符的索引。
- 如果字符串中有重复字符,
希望这个解释对您理解代码有所帮助!
五、C/C++算法源码:
以下是 C语言代码 和 C++代码 的详细中文注释和讲解,并附上代码转换。
C语言代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define MAX_SIZE 10000 // 定义最大字符串长度// 比较函数,用于qsort排序
int cmp(const void* a, const void* b) {return (*(char*) a) - (*(char*) b); // 按字符的ASCII值升序排序
}int main() {char s[MAX_SIZE]; // 定义字符数组,用于存储输入的字符串gets(s); // 从控制台读取字符串(注意:gets不安全,建议使用fgets)int k;scanf("%d", &k); // 从控制台读取整数kint n = strlen(s); // 获取字符串的长度char s_cp[n + 1]; // 定义字符数组,用于存储字符串的副本strcpy(s_cp, s); // 将原字符串复制到副本中qsort(s_cp, n, sizeof(char), cmp); // 对副本字符串进行排序if (k > n) { // 如果k大于字符串长度k = n; // 将k设置为字符串长度,防止越界}char target = s_cp[k - 1]; // 获取排序后字符串的第k个字符(索引为k-1)printf("%lld\n", strchr(s, target) - s); // 输出目标字符在原字符串中的索引return 0;
}
C语言代码讲解:
-
头文件:
#include <stdio.h>
:标准输入输出库,用于printf
和scanf
。#include <stdlib.h>
:标准库,用于qsort
。#include <string.h>
:字符串处理库,用于strlen
和strcpy
。
-
宏定义:
#define MAX_SIZE 10000
:定义最大字符串长度为10000。
-
比较函数
cmp
:- 用于
qsort
排序,按字符的ASCII值升序排列。
- 用于
-
主函数
main
:char s[MAX_SIZE];
:定义字符数组,用于存储输入的字符串。gets(s);
:从控制台读取字符串(注意:gets
不安全,建议使用fgets
)。scanf("%d", &k);
:从控制台读取整数k
。int n = strlen(s);
:获取字符串的长度。char s_cp[n + 1];
:定义字符数组,用于存储字符串的副本。strcpy(s_cp, s);
:将原字符串复制到副本中。qsort(s_cp, n, sizeof(char), cmp);
:对副本字符串进行排序。if (k > n) { k = n; }
:如果k
大于字符串长度,将k
设置为字符串长度。char target = s_cp[k - 1];
:获取排序后字符串的第k
个字符。printf("%lld\n", strchr(s, target) - s);
:输出目标字符在原字符串中的索引。
C++代码
#include <iostream>
#include <algorithm> // 包含sort函数
#include <cstring> // 包含strlen和strchr函数using namespace std;int main() {char s[10000]; // 定义字符数组,用于存储输入的字符串cin.getline(s, 10000); // 从控制台读取字符串(安全的方式)int k;cin >> k; // 从控制台读取整数kint n = strlen(s); // 获取字符串的长度char s_cp[n + 1]; // 定义字符数组,用于存储字符串的副本strcpy(s_cp, s); // 将原字符串复制到副本中sort(s_cp, s_cp + n); // 对副本字符串进行排序if (k > n) { // 如果k大于字符串长度k = n; // 将k设置为字符串长度,防止越界}char target = s_cp[k - 1]; // 获取排序后字符串的第k个字符(索引为k-1)cout << (strchr(s, target) - s) << endl; // 输出目标字符在原字符串中的索引return 0;
}
C++代码讲解:
-
头文件:
#include <iostream>
:输入输出流库,用于cin
和cout
。#include <algorithm>
:算法库,用于sort
函数。#include <cstring>
:C风格字符串处理库,用于strlen
和strchr
。
-
主函数
main
:char s[10000];
:定义字符数组,用于存储输入的字符串。cin.getline(s, 10000);
:从控制台读取字符串(安全的方式)。cin >> k;
:从控制台读取整数k
。int n = strlen(s);
:获取字符串的长度。char s_cp[n + 1];
:定义字符数组,用于存储字符串的副本。strcpy(s_cp, s);
:将原字符串复制到副本中。sort(s_cp, s_cp + n);
:对副本字符串进行排序。if (k > n) { k = n; }
:如果k
大于字符串长度,将k
设置为字符串长度。char target = s_cp[k - 1];
:获取排序后字符串的第k
个字符。cout << (strchr(s, target) - s) << endl;
:输出目标字符在原字符串中的索引。
代码功能总结:
- 该程序的功能是:给定一个字符串和一个整数
k
,程序会先对字符串中的字符进行排序,然后找到排序后的第k
个字符,并返回该字符在原字符串中的索引位置。
示例:
假设输入字符串为"hello"
,k
为3
:
- 将字符串转换为字符数组:
['h', 'e', 'l', 'l', 'o']
。 - 对字符数组进行排序:
['e', 'h', 'l', 'l', 'o']
。 - 取第
3
个字符(索引为2
):'l'
。 - 返回
'l'
在原字符串"hello"
中的索引位置:2
。
因此,程序输出为2
。
注意事项:
- C语言中的
gets
不安全:- 建议使用
fgets
替代gets
,例如:fgets(s, MAX_SIZE, stdin);
。
- 建议使用
- C++中的
cin.getline
:- 是安全的输入方式,可以避免缓冲区溢出。
- 字符重复:
- 如果字符串中有重复字符,
strchr
会返回第一个匹配字符的索引。
- 如果字符串中有重复字符,
希望这个解释对您理解代码有所帮助!
相关文章:
![](https://i-blog.csdnimg.cn/direct/918242775f684d628b7dcf2ee74eb48c.png)
【2024年华为OD机试】(C卷,100分)- 字符串筛选排序 (Java JS PythonC/C++)
一、问题描述 题目描述 输入一个由N个大小写字母组成的字符串 按照ASCII码值从小到大进行排序 查找字符串中第K个最小ASCII码值的字母 (k > 1) 输出该字母所在字符串中的位置索引 (字符串的第一个位置索引为0) k如果大于字符串长度则输出最大ASCII码值的字母所在字符串…...
![](https://www.ngui.cc/images/no-images.jpg)
iOS - runtime总结
详细总结一下 Runtime 的核心内容: 1. 消息发送机制 // 消息发送的基本流程 id objc_msgSend(id self, SEL _cmd, ...) {// 1. 获取 isaClass cls object_getClass(self);// 2. 查找缓存IMP imp cache_getImp(cls, _cmd);if (imp) return imp(self, _cmd, ...);…...
![](https://i-blog.csdnimg.cn/img_convert/0ede82cc25798a0aebfb5d2927a2a678.png)
第33 章 - ES 实战篇 - MySQL 与 Elasticsearch 的一致性问题
思维导图 0. 前言 MySQL 与 Elasticsearch 一致性问题是老生常谈了。网上有太多关于这方面的文章了,但是千篇一律,看了跟没看没有太大区别。 在生产中,我们往往会通过 DTS 工具将 binlog 导入到 Kafka,再通过 Kafka 消费 binlog&…...
![](https://i-blog.csdnimg.cn/direct/59cffa2b60cf45b2a5f38743f4635abf.png#pic_center)
Artec Leo 3D扫描仪与Ray助力野生水生动物法医鉴定【沪敖3D】
挑战:捕获大型水生哺乳动物(如鲸鱼)的数据,搭建全彩3D模型,用于水生野生动物的法医鉴定、研究和保护工作。 解决方案:Artec Eva、Artec Space Spider、Artec Leo、Artec Ray、Artec Studio、CT scans 效果&…...
![](https://www.ngui.cc/images/no-images.jpg)
PythonQT5打包exe线程使用
打包: pyinstaller --noconsole --onefile test.py–noconsole 表示不需要打开命令行 修改:test.spec 一般项目里面需要用的资源文件,比如lib、png、exe等。 需要单独修改spec文件 pathex[.],binaries[(D:/test.png, .),(D:/simsun.ttc, .…...
![](https://i-blog.csdnimg.cn/direct/7aea041960ea4082ae89409024044ca0.png)
【Powershell】Windows大法powershell好(二)
PowerShell基础(二) 声明:该笔记为up主 泷羽的课程笔记,本节链接指路。 警告:本教程仅作学习用途,若有用于非法行为的,概不负责。 1. powershell 执行外部命令 powershell也可以执行一些外部的…...
![](https://www.ngui.cc/images/no-images.jpg)
前端学习-环境this对象以及回调函数(二十七)
目录 前言 目标 环境对象 作用 环境对象this是什么? 判断this指向的粗略规则是什么? 回调函数 目标 常见的使用场景 综合案例:Tab任务栏切换 总结 前言 男儿何不带吴钩,收取关山五十州 目标 能够分析判断函数运行在不…...
![](https://i-blog.csdnimg.cn/direct/4b7cecf72f3d4573a83ea9135498d3fc.png)
Element-plus、Element-ui之Tree 树形控件回显Bug问题。
需求:提交时,需要把选中状态和半选中状态 的数据id提交。如图所示: 数据回显时,会出现代码如下: <template><el-tree ref"treeRef" :data"tree" show-checkbox node-key"id" …...
![](https://i-blog.csdnimg.cn/direct/5d41dfc4f6804a7a8e1d6140fcf4380f.png)
互联网全景消息(10)之Kafka深度剖析(中)
一、深入应用 1.1 SpringBoot集成Kafka 引入对应的依赖。 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupI…...
![](https://www.ngui.cc/images/no-images.jpg)
Oracle Dataguard(主库为双节点集群)配置详解(5):将主库复制到备库并启动同步
Oracle Dataguard(主库为双节点集群)配置详解(5):将主库复制到备库并启动同步 目录 Oracle Dataguard(主库为双节点集群)配置详解(5):将主库复制到备库并启动…...
![](https://www.ngui.cc/images/no-images.jpg)
pytorch小记(一):pytorch矩阵乘法:torch.matmul(x, y)
pytorch小记(一):pytorch矩阵乘法:torch.matmul(x, y)/ x y 代码代码 1:torch.matmul(x, y)输入张量:计算逻辑:输出结果: 代码 2:y y.view(4,1)…...
![](https://i-blog.csdnimg.cn/direct/2ad9f1c7c377479b9e238b31084eeff3.png)
PyTorch环境配置常见报错的解决办法
目标 小白在最基础的环境配置里一般都会出现许多问题。 这里把一些常见的问题分享出来。希望可以节省大家一些时间。 最终目标是可以在cmd虚拟环境里进入jupyter notebook,new的时候有对应的环境,并且可以跑通所有的import code。 第一步:…...
![](https://i-blog.csdnimg.cn/direct/ac5217088e9248c091580b57432bc18d.png)
罗永浩再创业,这次盯上了 AI?
罗永浩,1972年7月9日生于中国延边朝鲜族自治州的一个军人家庭,是一名朝鲜族人;早年在新东方授课,2004年当选 “网络十大红人” ;2006年8月1日,罗永浩创办牛博网;2008年5月,罗永浩注册…...
![](https://www.ngui.cc/images/no-images.jpg)
VUE3 provide 和 inject,跨越多层级组件传递数据
provide 和 inject 是 Vue 3 提供的 API,主要用于实现祖先组件与后代组件之间的依赖注入。它们可以让你在组件树中,跨越多层组件传递数据,而不需要通过 props 或事件的方式逐层传递。这个机制主要用于状态共享、插件系统或某些跨层级的功能。…...
![](https://i-blog.csdnimg.cn/direct/4d1b3cd9fd654020ac56ce780a7d4987.png)
git打补丁
1、应用场景 跨仓库升级 开发项目B使用的是开源项目A。开源项目A发现漏洞,作者进行了修复,我们可以通过使用git补丁的方式,将作者修改的内容复制到我 们的项目B中。 2、TortoiseGit方式 源仓库 格式化补丁 根据提交数量,生成…...
![](https://i-blog.csdnimg.cn/direct/42526c56c9924d3d8edf0eb3db3b1044.jpeg)
机械燃油车知识图谱、知识大纲、知识结构(持续更新...)
一、发动机 曲柄连杆机构 配气机构 点火系统 起动系统 燃油供给系统 润滑系统 冷却系统 二、底盘 (一)传动系统 1、离合器 2、变速器 3、万向传动装置 4、驱动桥 (二)行驶系统 1、车架 2、车桥 3、悬架 4、车轮 &a…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue3学习总结
一、Vue 3 基础搭建与核心语法 1.创建 Vue 3 应用 在项目的入口文件 main.js 中,通过以下代码创建 Vue 3 应用实例: import { createApp } from vue; import App from ./App.vue;const app createApp(App); app.mount(#app); 这几行代码的作用是引入…...
![](https://i-blog.csdnimg.cn/img_convert/9bd84aa6c16544bd68ab12c81ea351ad.webp?x-oss-process=image/format,png)
Type-C双屏显示器方案
在数字化时代,高效的信息处理和视觉体验已成为我们日常生活和工作的关键需求。随着科技的进步,一款结合了便携性和高效视觉输出的设备——双屏便携屏,逐渐崭露头角,成为追求高效工作和娱乐体验人群的新宠。本文将深入探讨双屏便携…...
![](https://i-blog.csdnimg.cn/direct/bd5db2a2310943cf89637f985253a3c3.heic)
【读书与思考】焦虑与内耗
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 导言 今天一个朋友和我说,最近比较焦虑和内耗,无心工作和学习,我问他你焦虑内耗的时候,时间主要花在哪了,他告诉我说主要花在看有关移…...
![](https://www.ngui.cc/images/no-images.jpg)
基于python的网页表格数据下载--转excel
基于 Python 的网页表格数据爬取与下载:以维基百科为例 目录 基于 Python 的网页表格数据爬取与下载:以维基百科为例1. 背景介绍2. 工具与环境3. 操作步骤1. 获取网页内容2. 定位表格元素3. 表格变身 Pandas DataFrame4. 检查数据,收工!5. 进阶玩法与优化6. 完整代码4. 结果…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue.js开发入门:从零开始搭建你的第一个项目
前言 嘿,小伙伴们!今天咱们来聊聊 Vue.js,一个超火的前端框架。如果你是编程小白,别怕,跟着我一步步来,保证你能轻松上手,搭建起属于自己的第一个 Vue 项目。Vue.js 可能听起来有点高大上&#…...
![](https://i-blog.csdnimg.cn/direct/49af320fcb47436c864c359c3a7bc7a5.png)
LS1046+XILINX XDMA PCIE调通
欢迎点赞收藏,欢迎私下讨论技术,分享技术 硬件平台 :NXP LS1046 XILINX FPGA 软件平台:LINUX 4.19.68 buildroot LS1046 PEX3 接 XILINX FPGA,linux使用designware的PCI主控制器。下载XILINX DMA驱动,解…...
![](https://i-blog.csdnimg.cn/direct/7941b86d92c547cfa3bdc17012bfcbd7.png)
HarmonyOS:@LocalBuilder装饰器: 维持组件父子关系
一、前言 当开发者使用Builder做引用数据传递时,会考虑组件的父子关系,使用了bind(this)之后,组件的父子关系和状态管理的父子关系并不一致。为了解决组件的父子关系和状态管理的父子关系保持一致的问题,引入LocalBuilder装饰器。…...
![](https://www.ngui.cc/images/no-images.jpg)
YOLOv10-1.1部分代码阅读笔记-downloads.py
downloads.py ultralytics\utils\downloads.py 目录 downloads.py 1.所需的库和模块 2.def is_url(url, checkFalse): 3.def delete_dsstore(path, files_to_delete(".DS_Store", "__MACOSX")): 4.def zip_directory(directory, compressTrue, ex…...
![](https://i-blog.csdnimg.cn/direct/38ea57cdd8e8406390eb6814d86d96a7.png)
计算机图形学【绘制立方体和正六边形】
工具介绍 OpenGL:一个跨语言的图形API,用于渲染2D和3D图形。它提供了绘制图形所需的底层功能。 GLUT:OpenGL的一个工具库,简化了窗口创建、输入处理和其他与图形环境相关的任务。 使用的函数 1. glClear(GL_COLOR_BUFFER_BIT |…...
![](https://i-blog.csdnimg.cn/direct/922b9077f3a04aeebc20ade87fe091ac.png)
基于django中医药数据可视化平台(源码+lw+部署文档+讲解),源码可白嫖!
摘要 时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,中医药管理平台当然不能排除在外。中医药数据可视化平台是在实际应用和软件工程的开发原理之上,运用Python语言、ECharts技术、…...
![](https://i-blog.csdnimg.cn/direct/1fd04756f5f446f98111096d16a21f14.png)
kafka消费堆积问题探索
背景 我们的商城项目用PHP写的,原本写日志方案用的是PHP的方案,但是,这个方案导致资源消耗一直降不下来,使用了20个CPU。后面考虑使用通过kafka的方案写日志,商城中把产生的日志丢到kafka中,在以go写的项目…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue.js 使用插槽(Slots)优化组件结构
Vue.js 使用插槽(Slots)优化组件结构 今天我们聊聊 Vue.js 的一个超实用功能——插槽(Slots)。插槽是 Vue 组件开发中的神器,用好它,你可以让组件变得更灵活、更可复用,还能写出优雅的代码结构…...
![](https://i-blog.csdnimg.cn/direct/47b25646abcb4c0a80d9d5d1b2e1739c.png)
Broker如何进行定时心跳发送和故障感知
1.前言 此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂《从0开始带你成为RocketMQ高手》,我本人觉得这个作者还是不错,都是从场景来进行分析,感觉还是挺适合我这种小白的。这块主要都是我自己的学习笔…...
![](https://i-blog.csdnimg.cn/direct/da3228ab454444a1a5d4e5b36c3e88b5.png)
网络安全设备主要有什么
网络安全设备指的肯定是硬件设备了,国内卖安全硬件的没几家,天融信,启明星辰,绿盟,深信服,就这四家卖的比较齐全吧,上它们官网看一下,就知道市面上主要的网络安全设备有哪些了。分类…...
![](/images/no-images.jpg)
融水县建设局网站/公司宣传软文
前端技术周刊 2018-06-09 前端快爆 生态更新 Git 发现一个关于 Submodule 的安全漏洞,将可能导致任意代码执行漏洞,将 Git 客户端升级到 2.17.1 即可避免这样的安全问题。? W3C 网络内容可访问性指南的 2.1 版本已经进入 W3C 的推荐状态,新版…...
![](/images/no-images.jpg)
河南又出现新疫情是不是真的/百度seo推广
如何使用Couchdb配置CUSTOM_DATA字段?我想设置一个配置值与错误一起发送.在后端,我有一个带有ACLARYZER Web应用程序的沙发数据库.这是我在Android的Application.class上定义此自定义数据值的代码.ReportsCrashes(formUri "https://user.cloudant.com/acra-re…...
![](https://img-blog.csdnimg.cn/d052784657fe4cd0b33160f5df4160c9.png)
临沂哪家做网站最好/关键词搜索名词解释
分析: 根据欧拉函数的那个性质 if(p是质数){if(i % p 0) f[i * p] f[i] * p;else f[i * p] f[i] * (p - 1);}每次区间乘的那个数小于等于100,所以我们可以考虑把100以内的数质因数分解,区间乘100相当于区间乘两个2和两个5,但是…...
![](https://img-blog.csdnimg.cn/f8567aa65d4d4a5295f6cb4c5c23a36a.png)
兰州论坛网站建设/问卷调查网站
with open(data.csv,modew,newline,encodingutf-8) as f:pass 今天在写入csv的时候发现文件多了一行空行,加上newline 就可以了 原:...
![](https://pic002.cnblogs.com/images/2012/209149/2012120320591887.jpg)
自己做视频网站资源从哪里来/网站优化培训学校
这是我翻译的一篇文章,不知道哪年翻译的,没译完。这几天看见了,又拿出来接着翻译。可是还有那么多,不知道那天能弄出来。所以我就先把翻译的贴出来吧 原文链接http://www.flipcode.com/archives/Light_Mapping_Theory_and_Impleme…...
![](/images/no-images.jpg)
wordpress金融公司主题/推广软文案例
本文是读《Spring Boot2精髓-从构件小系统到架构分布式大系统》的读书笔记。 本章介绍 MVC 中的后端视图技术, 一种是后端模板引擎Beetl,用于渲染模板;另外一种 是 JSON 序列化技术 Jackson 。 Beetl这里不多写 对于 JSON 的序列化和反序列…...