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

每日一题——Python实现PAT乙级1028 人口普查 Keyboard(举一反三+思想解读+逐步优化)六千字好文


一个认为一切根源都是“自己不够强”的INTJ

个人主页:用哲学编程-CSDN博客
专栏:每日一题——举一反三
Python编程学习
Python内置函数

Python-3.12.0文档解读

目录

题目链接​编辑我的写法

专业点评

时间复杂度分析

空间复杂度分析

总结

我要更强

优化代码

优化解释

进一步优化

总结

哲学和编程思想

1. KISS (Keep It Simple, Stupid)

2. DRY (Don't Repeat Yourself)

3. YAGNI (You Aren't Gonna Need It)

4. Separation of Concerns

5. Single Responsibility Principle (SRP)

6. Efficient Input/Output Handling

7. Algorithmic Efficiency

8. Minimal State

9. Readability and Maintainability

10. Resource Management

举一反三

1. KISS (Keep It Simple, Stupid)

2. DRY (Don't Repeat Yourself)

3. YAGNI (You Aren't Gonna Need It)

4. Separation of Concerns

5. Single Responsibility Principle (SRP)

6. Efficient Input/Output Handling

7. Algorithmic Efficiency

8. Minimal State

9. Readability and Maintainability

10. Resource Management

举一反三的具体技巧


题目链接我的写法

# 输入一个整数N,表示接下来有N个人的名字和生日需要输入
N = int(input())# 初始化合理的生日数量
resonable_birthdays_num = 0# 初始化最年轻人的名字
youngest_name = ''# 初始化最年轻人的生日为一个非常早的日期
youngest_birthday = 18140905# 初始化最年长人的名字
oldest_name = ''# 初始化最年长人的生日为一个非常晚的日期
oldest_birthday = 20140907# 使用循环从1运行到N次,用于输入每个人的名字和生日
for i in range(N):# 输入名字和生日,使用空格分隔name, birthday = input().split()# 将生日中的斜杠替换为空,并转换为整数格式birthday = int(birthday.replace('/', ''))# 检查生日是否在合理的范围内if 18140906 <= birthday <= 20140906:# 如果生日合理,合理生日数量加1resonable_birthdays_num += 1# 更新最年长人的数据,如果当前生日比最年长人的生日早if birthday < oldest_birthday:oldest_name = nameoldest_birthday = birthday# 更新最年轻人的数据,如果当前生日比最年轻人的生日晚if youngest_birthday < birthday:youngest_name = nameyoungest_birthday = birthday# 如果有合理的生日,输出合理的生日数量、最年长人的名字、最年轻人的名字
if resonable_birthdays_num:print(resonable_birthdays_num, oldest_name, youngest_name)
# 如果没有合理的生日,输出0
else:print('0')

这段代码是一个用于处理生日信息的小程序,通过输入多个名字和生日,找出其中最年长和最年轻的人。下面是对这段代码的专业点评以及时间复杂度和空间复杂度的分析。

专业点评

  1. 输入处理:
    • 数字N的输入和处理逻辑非常清晰。
    • 使用split()方法分割名字和生日,使用replace()方法处理生日格式再转换为整数,这是合理的。
  2. 初始化:
    • 变量的初始化清晰且符合逻辑,特别是对最年轻和最年长生日的初始值设置非常好。
  3. 逻辑判断:
    • 使用合理的范围(18140906到20140906)来判断生日是否在合理范围内,符合实际需求。
    • 更新最年长和最年轻人的逻辑分开处理,且条件明确。
  4. 输出结果:
  • 合理地检查了合理生日的数量,并根据不同情况输出相应的结果。

时间复杂度分析

时间复杂度是用来分析算法执行时间随输入规模增长的变化情况。

  1. 变量初始化:
    • 初始化变量O(1)。
  2. 输入处理和循环:
    • 循环N次处理输入,每次处理包含字符串分割、替换和转换操作,这些操作的时间复杂度为O(1)。
    • 因此,循环部分的总时间复杂度为O(N)。
  3. 更新逻辑:
    • 在每次循环中更新合理生日数量、最年长和最年轻人的逻辑都是常数时间操作O(1)。
  4. 输出结果:
  • 最后的输出操作也是常数时间O(1)。

综合上述分析,整个程序的时间复杂度为O(N)。

空间复杂度分析

空间复杂度是用来分析算法在运行过程中占用的内存空间。

  1. 变量初始化:
    • 初始化了多个变量,这些变量的空间复杂度为O(1)。
  2. 输入处理:
  • 每次处理一个输入,存储名字和生日的临时变量,且这些变量在每次循环结束后会被释放。
  • 由于我们不存储所有输入数据,只进行逐个处理,因此空间复杂度为O(1)。

综合上述分析,整个程序的空间复杂度为O(1)。

总结

这段代码逻辑清晰且结构合理,能够高效地处理输入数据并找出最年长和最年轻的人的名字。其时间复杂度和空间复杂度均为有效的O(N)和O(1),表现良好。可以考虑在输入数据量非常大的情况下进一步优化,例如通过更高效的输入处理方法或并行处理,但对于一般情况,这段代码已经非常健壮和高效。


我要更强

在这段代码中,时间复杂度已经是O(N),空间复杂度是O(1)。在这种情况下,进一步优化时间复杂度是不可行的,因为我们需要遍历所有输入以找到最年长和最年轻的人。不过,我们可以通过一些方式来提升代码的可读性和效率,比如:

  1. 使用更高效的输入方式来优化批量输入。
  2. 减少不必要的变量赋值来优化空间使用。

下面给出一些优化建议和相应的代码:

使用更高效的输入方式

在Python中,可以使用sys.stdin.read来一次性读取所有输入,然后逐行处理,这可能会提高大量输入情况下的速度。

合并部分逻辑

将最年长和最年轻人的检查逻辑合并到一次判断中。

优化代码

下面是优化后的代码:

import sys# 从标准输入读取所有数据
input_data = sys.stdin.read().strip().split('\n')# 第一个输入为整数N,表示接下来有N个人的名字和生日需要输入
N = int(input_data[0])# 初始化合理的生日数量
resonable_birthdays_num = 0# 初始化最年轻人的名字
youngest_name = ''# 初始化最年轻人的生日为一个非常早的日期
youngest_birthday = 18140905# 初始化最年长人的名字
oldest_name = ''# 初始化最年长人的生日为一个非常晚的日期
oldest_birthday = 20140907# 使用循环从1运行到N次,用于输入每个人的名字和生日
for i in range(1, N + 1):# 输入名字和生日,使用空格分隔name, birthday = input_data[i].split()# 将生日中的斜杠替换为空,并转换为整数格式birthday = int(birthday.replace('/', ''))# 检查生日是否在合理的范围内if 18140906 <= birthday <= 20140906:# 如果生日合理,合理生日数量加1resonable_birthdays_num += 1# 更新最年长或最年轻人的数据if birthday < oldest_birthday:oldest_name = nameoldest_birthday = birthdayif birthday > youngest_birthday:youngest_name = nameyoungest_birthday = birthday# 如果有合理的生日,输出合理的生日数量、最年长人的名字、最年轻人的名字
if resonable_birthdays_num:print(resonable_birthdays_num, oldest_name, youngest_name)
# 如果没有合理的生日,输出0
else:print('0')

优化解释

  1. 输入优化:
    • 使用sys.stdin.read()一次性读取所有输入数据并分割为行,这在处理大量输入时比逐行调用input()更高效。
  2. 减少变量赋值:
  • 合并最年轻和最年长人的判断逻辑,减少重复的条件判断和变量赋值操作。

进一步优化

在目前这段代码的时间复杂度和空间复杂度都已经是较优的状态。时间复杂度是O(N),空间复杂度是O(1)。在这种情况下,进一步优化主要体现在代码可读性和执行效率的小提升上。

总结

对于这个问题,进一步的优化空间有限。主要优化方向在于提高输入效率和减少冗余的代码。上述代码已经尽可能地优化了时间复杂度和空间复杂度,同时保持了代码的可读性和易维护性。


哲学和编程思想

在优化和重构代码的过程中,我们运用了多种编程思想和软件设计哲学。这些思想和哲学帮助我们编写更高效、可维护且可读性更好的代码。以下是具体说明:

1. KISS (Keep It Simple, Stupid)

尽量保持代码简单明了。复杂的解决方案容易引发错误且难以维护。我们在优化代码时,通过减少不必要的变量赋值和合并逻辑判断,保持了代码的简单性。

  • 应用例子: 合并最年长和最年轻人判断的逻辑。
if birthday < oldest_birthday:oldest_name = nameoldest_birthday = birthday
if birthday > youngest_birthday:youngest_name = nameyoungest_birthday = birthday

2. DRY (Don't Repeat Yourself)

避免代码重复,尽量使用统一的代码块来处理相似的任务。减少重复的代码不仅可以减少错误的发生,还能使代码更加简洁。

  • 应用例子: 合并生日范围判断后的逻辑处理。
if 18140906 <= birthday <= 20140906:resonable_birthdays_num += 1if birthday < oldest_birthday:oldest_name = nameoldest_birthday = birthdayif birthday > youngest_birthday:youngest_name = nameyoungest_birthday = birthday

3. YAGNI (You Aren't Gonna Need It)

只实现当前需要的功能,而不是预先考虑所有可能的功能需求。这样可以避免代码变得臃肿和复杂。

  • 应用例子: 只关注合理生日数量、最年长和最年轻人的逻辑处理,而没有引入额外不必要的功能。

4. Separation of Concerns

将不同的功能逻辑分离开来,使得每个部分只专注于其单一的功能,这样代码更容易理解和维护。

  • 应用例子: 输入处理和逻辑判断分开,清晰地分离了输入数据和业务逻辑。

5. Single Responsibility Principle (SRP)

每个模块或函数应该只有一个职责。这使得代码更加模块化,便于测试和维护。

  • 应用例子: 输入处理部分和结果输出部分分开,确保每段代码只处理一个功能。

6. Efficient Input/Output Handling

在处理大量数据时,使用高效的输入输出方法可以显著提升程序的性能。在Python中,使用sys.stdin.read()一次性读取所有输入数据而不是逐行读取是一种常见的优化方式。

  • 应用例子: 使用sys.stdin.read()来优化输入处理。
import sys
input_data = sys.stdin.read().strip().split('\n')

7. Algorithmic Efficiency

尽可能选择高效的算法和数据结构来解决问题,尽量减少时间和空间复杂度。

  • 应用例子: 使用O(N)复杂度的算法遍历输入数据,避免了多余的嵌套循环或不必要的复杂操作。

8. Minimal State

保持状态最小化,减少临时变量的使用和状态的改变,从而使代码更易于理解和调试。

  • 应用例子: 减少不必要的变量赋值,只保留必要的状态变量,如oldest_name和youngest_name。

9. Readability and Maintainability

编写易读的代码,使得代码在将来需要修改或扩展时更容易理解和维护。

  • 应用例子: 通过合理的变量命名和清晰的结构,使代码易于阅读和理解。

10. Resource Management

高效地管理资源,特别是在处理大量输入输出时,尽可能减少资源的浪费。

  • 应用例子: 使用sys.stdin.read一次性读取所有输入,减少多次I/O操作的开销。

通过运用这些编程思想和软件设计哲学,我们不仅优化了代码的时间和空间复杂度,还提高了代码的可维护性和可读性。这样不仅能确保当前需求得到高效的实现,还为将来的扩展和维护打下了良好的基础。


举一反三

以下是一些技巧和策略,帮助你在优化和重构代码时更好地应用这些编程思想和软件设计哲学:

1. KISS (Keep It Simple, Stupid)

  • 技巧: 从最直接、最简单的解决方案开始,如果简单的解决方案不能满足需求,再逐步增加复杂性。
  • 策略: 定期审查代码,问自己是否有更简单的方法来实现同样的功能。

2. DRY (Don't Repeat Yourself)

  • 技巧: 使用函数、类和模块来封装重复的代码段。
  • 策略: 进行代码审查时,特别留意重复的代码,尝试将其抽取成独立的函数或模块。

3. YAGNI (You Aren't Gonna Need It)

  • 技巧: 在实现功能时,严格限定在当前需求的范围内,不要过早优化或为可能的需求预留空间。
  • 策略: 在项目规划和代码评审时,确保每次只实现当前需求。

4. Separation of Concerns

  • 技巧: 将不同功能的代码分离到独立的模块或类中,使每个部分专注于单一职责。
  • 策略: 使用层次化设计,区分数据访问层、业务逻辑层和表现层。

5. Single Responsibility Principle (SRP)

  • 技巧: 每个函数或类只做一件事,并且名字能明确反映其职责。
  • 策略: 定期重构代码,确保每个模块或函数都符合单一职责原则。

6. Efficient Input/Output Handling

  • 技巧: 在处理大量数据时,尽量使用批量处理方法,减少I/O操作次数。
  • 策略: 优化数据流和缓冲区的使用,确保I/O操作的高效性。

7. Algorithmic Efficiency

  • 技巧: 选择合适的数据结构和算法,确保时间和空间复杂度最小化。
  • 策略: 在编写和优化代码时,使用复杂度分析工具和技术,确保高效实现。

8. Minimal State

  • 技巧: 只保留必要的状态,避免不必要的临时变量和状态变化。
  • 策略: 在代码编写和审查时,关注变量的生命周期和作用域,减少不必要的状态管理。

9. Readability and Maintainability

  • 技巧: 使用有意义的变量名、函数名和注释,提高代码的可读性。
  • 策略: 定期进行代码审查,确保代码清晰和易于理解。

10. Resource Management

  • 技巧: 使用上下文管理器和适当的资源释放机制,确保资源的高效利用。
  • 策略: 在处理文件、网络连接等资源时,使用with语句等上下文管理工具,确保资源得到正确管理。

举一反三的具体技巧

  1. 代码审查和重构: 定期进行代码审查,并将重构作为开发过程的一部分。识别并消除代码中的重复和复杂性。
  2. 学习和借鉴: 学习优秀开源项目代码,借鉴其设计模式和编程思想。分析和理解其背后的设计决策。
  3. 测试驱动开发(TDD): 使用TDD确保代码的可靠性和可维护性。编写测试用例可以帮助你更好地理解和分离代码的职责。
  4. 工具和自动化: 使用代码分析和格式化工具(如Pylint、Black等)保持代码风格一致性,自动化测试和部署流程。
  5. 文档和注释: 编写详尽的文档和注释,确保代码的可读性和可维护性。尤其是在代码复杂的地方,详细说明其逻辑和设计意图。

通过不断实践和反思这些技巧和策略,可以逐步提升代码质量,编写出高效、易维护且易读的代码。


相关文章:

每日一题——Python实现PAT乙级1028 人口普查 Keyboard(举一反三+思想解读+逐步优化)六千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 题目链接​编辑我的写法 专业点评 时间复杂度分析 空间复杂度分析 总结 我要更强…...

小程序 UI 风格,构建美妙视觉

小程序 UI 风格&#xff0c;构建美妙视觉...

使用Python在VMware虚拟机中模拟Ubuntu服务器搭建网站

在此之前可以先使用VS Code连接到虚拟机&#xff1a;Visual Studio Code连接VMware虚拟机-CSDN博客 安装Web服务器Apache sudo apt-get install apache2 在个别情况下需要对Apache服务器的配置文件进行调整&#xff1a; 打开etc路径下的apache2文件夹&#xff0c;根据端口…...

腾讯测试开发<ieg 实验室>

3.26 40min 自我介绍实习经历有无遇到什么难点&#xff0c;你是如何克服的在这个项目中你大概做了多少个测试用例&#xff0c;这么多测试用例你平时用什么工具进行管理的&#xff0c;每一次跑全部还是每次只跑一部分现在假设给你一个新的项目&#xff0c;需要你这边去做测试&a…...

windows命令帮助大全

有关某个命令的详细信息&#xff0c;请键入 HELP 命令名 ASSOC 显示或修改文件扩展名关联。 ATTRIB 显示或更改文件属性。 BREAK 设置或清除扩展式 CTRLC 检查。 BCDEDIT 设置启动数据库中的属性以控制启动加载。 CACLS 显示或修改文件的访问控制列表(ACL)。 CALL 从另一个批处…...

pytest中失败用例重跑

pip install pytest-rerunfailures 下载rerunfailures插件包 配置文件中加入命令 --reruns 次数 也可在命令行中pytest --rerun-failures2 可以在allure报告中看到重试效果...

http穿透怎么做?

众所周知http协议的默认端口是80&#xff0c;由于国家工信部要求&#xff0c;域名必须备案才给开放80端口&#xff0c;而备案需要固定公网IP&#xff0c;这就使得开放http80端口的费用成本和时间成本变的很高。那么能不能利用内网穿透技术做http穿透呢&#xff1f;下面我就给大…...

前端技术回顾系列 11|TS 中一些实用概念

在微信中阅读,关注公众号:CodeFit。 创作不易,如果你觉得这篇文章对您有帮助,请不要忘了 点赞、分享 和 关注 我的公众号:CodeFit,为我的持续创作提供动力。 上文回顾:泛型在类和接口中的应用 上一篇文章我们回顾了 泛型 在 类 和 接口 中的应用。 通过使用泛型,我们…...

leetcode LRU 缓存

leetcode: LRU 缓存 LRU 全称为 Least Recently Used&#xff0c;最近最少使用&#xff0c;常常用于缓存机制&#xff0c;比如 cpu 的 cache 缓存&#xff0c;使用了 LRU 算法。LRU 用于缓存机制时&#xff0c;关键的是当缓存满的时候有新数据需要加载到缓存的&#xff0c;这个…...

LeetCode 2786.访问数组中的位置使分数最大:奇偶分开记录(逻辑还算清晰的题解)

【LetMeFly】2786.访问数组中的位置使分数最大&#xff1a;奇偶分开记录&#xff08;逻辑还算清晰的题解&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/visit-array-positions-to-maximize-score/ 给你一个下标从 0 开始的整数数组 nums 和一个正整数 …...

嵌入式仪器模块:音频综测仪和自动化测试软件

• 24 位分辨率 • 192 KHz 采样率 • 支持多种模拟/数字音频信号的输入/输出 应用场景 • 音频信号分析&#xff1a;幅值、频率、占空比、THD、THDN 等指标 • 模拟音频测试&#xff1a;耳机、麦克风、扬声器测试&#xff0c;串扰测试 • 数字音频测试&#xff1a;平板电…...

计算商场折扣 、 判断体重指数 题目

题目 JAVA5 计算商场折扣分析&#xff1a;代码&#xff1a; JAVA6 判断体重指数分析&#xff1a;代码&#xff1a;大佬代码&#xff1a; JAVA5 计算商场折扣 描述 牛牛商场促销活动&#xff1a; 满100全额打9折&#xff1b; 满500全额打8折&#xff1b; 满2000全额打7折&…...

input输入框禁止输入小数点方法

使用blur事件&#xff1a; <el-input v-model"number" type"number" placeholder"请输入" blur"numberBlur" /> 第一种&#xff1a; 使用parseInt转为整数&#xff1a; this.number parseInt(this.number);第二种&#xff…...

使用adb通过wifi连接手机

1&#xff0c;手机打开开发者模式&#xff0c;打开无线调试 2&#xff0c;命令行使用adb命令配对&#xff1a; adb pair 192.168.0.102:40731 输入验证码&#xff1a;422859 3&#xff0c;连接设备&#xff1a; adb connect 192.168.0.102:36995 4&#xff0c;查看连接状态:…...

如何一键拷贝PPT中的所有文字?

有时我们可能需要引用PPT的文字&#xff0c;但一个幻灯片一个幻灯片拷贝很是麻烦&#xff0c;我们想一键拷贝PPT中所有幻灯片中的内容&#xff08;最近我就遇到了这个需求&#xff09;。今天就来讲讲这个一键拷贝的技巧。因为大家可能会遇到同样的问题&#xff0c;所以在此记录…...

Hive的存储格式和压缩算法的特点和选择

1、数据存储格式&#xff1a; ①TEXTFILE HIVE 中默认的存储格式&#xff1b; 一般使用在数据贴源层(ODS 或 STG) &#xff0c;针对需要使用脚本 LOAD 加载数据到 HIVE 数仓表中的情况&#xff1b;需要把表里数据导出或直接可以查看等场景&#xff0c;作为BI供数 易读性…...

C语言中的枚举类型(enum)是如何定义的

在C语言中&#xff0c;枚举类型&#xff08;enum&#xff09;是一种用户定义的数据类型&#xff0c;它允许为整数值指定一个易读的名字。枚举类型通常用于表示固定数量的可能值&#xff0c;例如一周的七天或颜色的集合。 枚举类型的定义使用关键字 enum&#xff0c;后面跟着枚…...

SPI通信协议

一、SPI通信 1、SPI&#xff08;Serial Peripheral Interface&#xff09;是由Motorola公司开发的一种通用数据总线 2、四根通信线&#xff1a;SCK&#xff08;Serial Clock&#xff09;、MOSI&#xff08;Master Output Slave Input&#xff09;、MISO&#xff08;Master In…...

【免费Web系列】大家好 ,今天是Web课程的第二一天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r 员工管理 1. 条件分页查询 1.1 概述 在页面原型中&#xff0c;我们可以看到在查询员工信息列表时&#xff0c;既需要根据条件动态查询&#xff0c;还需要对查询的结果进行分页处理。 那要完成这个页面…...

【单片机毕业设计选题24007】-基于STM32和阿里云的家庭健康数据监测系统

系统功能: 本课题设计是基于STM32单片机作为控制主体&#xff0c;通过HX711称重模块&#xff0c;HC-SR04超声波测距模块&#xff0c;红外测温&#xff0c;心率传感器等模块通过I2C或SPI接口与STM32进行通信&#xff0c;并读取传感器输出的身高&#xff0c;体重&#xff0c;心率…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

学习一下用鸿蒙​​DevEco Studio HarmonyOS5实现百度地图

在鸿蒙&#xff08;HarmonyOS5&#xff09;中集成百度地图&#xff0c;可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API&#xff0c;可以构建跨设备的定位、导航和地图展示功能。 ​​1. 鸿蒙环境准备​​ ​​开发工具​​&#xff1a;下载安装 ​​De…...

命令行关闭Windows防火墙

命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)​方法二:CMD命令…...