IEC61850实现方案和测试-2
IEC61850实现方案和测试-1作为介绍实现方案和测试的第二篇文章,后续会继续更新,欢迎关注。
第一篇是:IEC61850实现方案和测试-1-CSDN博客
UCA详细测试用例下载:
链接: https://pan.baidu.com/s/1TTMlYRfzKITgrkWwwtcrDg 提取码: wrwx
本篇主要介绍IEC61850的UCA测试用例,该篇主要介绍对服务器server的测试用例。
1、应用关联测试用例
sAss1,配置好正确的连接和认证参数,建立连接,释放链接,重复建立和释放链接250次
sAss2,配置好正确的连接和认证参数,建立连接,中断链接,重复建立和中断链接250次
sAss3,配置好正确的连接和认证参数,建立 max个连接,释放max个链接,重复建立和释放max个链接250次
sAss4,主要测试协商参数
sAssN1,server开启认证服务,配置错误的认证参数建立连接失败,server关闭认证服务,错误的认证参数建立连接成功
sAssN2,配置正确的认证参数请求连接成功,释放也成功,分别配置如下不正确的认证参数
• called / calling transport selector
• called / calling session selector
• called / calling presentation selector
• called / calling AP title
• called / calling AE qualifier
建立连接失败
sAssN3,测试支持同时连接的最大个数,配置正确的认证参数,建立n个连接,直到建立链接失败,重复250次
sAssN4,测试连接超时和超时检测,配置正确的认证参数,建立连接,读一个数据,client等待数倍超时时间,等待server发送keep alive心跳,确认超时时间,
断开网络连接时间长于连接检测时间在恢复网络,通过向之前建立的连接发送一个请求数据的命令,server不会应答,检测server已经检测到连接丢失
再次建立max个连接,释放max个连接
sAssN5,电源中断,配置正确的认证参数请求连接成功,中断电源供电,等待server断电,恢复供电,经过上电时间后,client再次请求建立连接,连接成功
sAssN6,测试释放的连接资源可重用,client1建立max个连接成功,然后释放1个连接,使用client2 建立连接,可以成功;断开client2的网络,大于超时时间,在恢复网络
,client2重新建立连接成功,请求数据也成功
2、模型和数据服务
sSrv1,获取服务目录测试,client建立连接成功,请求GetServerDirectory,server响应成功(包含逻辑设备的列表),继续sSrv2测试
sSrv2,获取逻辑设备目录测试,对sSrv1返回的每个逻辑设备请求GetLogicalDeviceDirectory,server响应成功(包含逻辑节点的列表),继续sSrv3测试
sSrv3,获取逻辑节点目录测试,对sSrv2返回的每个逻辑节点请求GetLogicalNodeDirectory,server响应成功(包含数据对象的列表),继续sSrv4测试
sSrv4,获取数据对象目录测试,对sSrv3返回的每个数据对象请求GetDataDirectory、GetDataDefinition、GetDataValues,server对各个请求响应成功
sSrv5,对数据分层进行读数据测试,至少读取如下数据
• Functional constrained data: LLN0$ST$Beh
• Functional constrained data attribute: LLN0$ST$Beh$stVal
• Functional constrained data attribute type attribute
sSrv6,设置数据测试
对功能约束为 FC=ST, MX or EX的数据对象发送当前值的设置请求,server应答为response- with data access error “object-access-denied”
对功能约束为 FC=BL, CF ,SP or DC的数据对象发送当前值的设置请求(写使能类型数据对象),只读数据回复response-,写使能回复response+(只读标志为valKind=”RO,写使能标志为valKind="Set”或者为设置),设置新值并读出对比
sSrv7,测试设置数据时最大数据对象个数
sSrv8,测试获取全部数据,针对每个逻辑节点和支持的功能约束fc,client发送获全部取数据值(至少包含一个FC=ST, MX, CF, SP, DC, EX, BL, OR)
对于每个逻辑节点,使用数据对象引用(<IED><LD>/<LN>$<FC>)的方式发送获全部取数据值
sSrv9,测量值含义测试
sSrv10,单点和双点信息含义测试
sSrv11,闭锁测试,针对支持blkEna的数据对象进行测试,当blkEna为真时,即使通过模拟器改变过程值,该闭锁对象的数据也不会变化,当blkEna为假时,通过模拟器改变过程值,该闭锁对象的数据会变化
sSrv12,mode测试, off, test and/or blocked
mode=off,请求mode、behaviour,health和过程值,mode和behaviour值更新,过程值品质为无效
mode=test,请求mode、behaviour,health和过程值,mode和behaviour值更新,过程值品质为test
mode=test/blocked,请求mode、behaviour,health和过程值,mode和behaviour值更新,过程值品质为test
mode=blocked,请求mode、behaviour,health和过程值,mode和behaviour值更新,过程值品质保持mode=on时的状态
mode=on,请求mode、behaviour,health和过程值,mode和behaviour值更新,过程值品质的值被clear
Mod、Beh、Health不是过程值,他们的品质总是validity=good
sSrv13,逻辑设备层次测试,引用一个不是无线循环的引用,引用格式GrRef.setSrcRef value in SCL is: “@<LDevice.inst>” or “<IED.name><LDevice.inst>” and in the online datamodel:
“<IED.name><LDevice.inst>” or <LDevice.ldName>
在mod的上级请求GetDataValues所有下层级数据,server响应成功
sSrv14,同sSrv11
sSrvN1,逻辑设备、节点、数据服务参数错误测试
对于GetLogicalDeviceDirectory、GetLogicalDeviceDirectory、GetDataDirectory / GetDataDefinition、GetDataValues、SetDataValues、GetAllDataValues 回复error “object-non-existent”
sSrvN2,设置数据值超出枚举值范围,回复data access error “object-value-invalid”
sSrvN3,设置数据值数据类型不匹配(如整数和浮点数),回复data access error “type-inconsistent”
sSrvN4,对只读数据进行设置,回复 data access error “object-access-denied”
3、数据集服务
sDs1,获取数据集信息测试,对每个逻辑节点,请求逻辑节点目录(DATA-SET),正常响应;对数据集请求数据集目录,正常响应;对数据集的数据请求值,正常响应
sDs2,创建永久数据集测试,创建包含一个成员的永久数据集,client1进行GetLogicalNodeDirectory(DATA-SET)操作,响应包含创建的数据集名字;client2进行GetLogicalNodeDirectory(DATA-SET)操作,响应包含创建的数据集名字;创建最大个数成员的永久数据集,操作同上
sDs3,创建非永久数据集测试,创建包含一个成员的非永久数据集,client1进行GetLogicalNodeDirectory(DATA-SET)操作,响应包含创建的数据集名字,client2进行GetLogicalNodeDirectory(DATA-SET)操作,响应不包含创建的数据集名字;创建最大个数成员的永久数据集,操作同上
sDs4,创建和删除永久数据集测试,创建一个永久数据集,至少包含2个成员,请求数据集数据,返回包含成员的数据集数据,删除刚才创建的数据集,删除成功
创建一个永久数据集,至少包含1个扩展成员,请求数据集数据,返回包含成员的数据集数据,删除刚才创建的数据集,删除成功
再次创建刚才创建的永久数据集,包含两个成员,但两个成员的顺序重新排列,请求数据集数据,返回包含成员的数据集数据(顺序与创建时候排序一致)
sDs5,创建和删除非永久数据集测试,测试同sDs4
sDs6,非永久数据集链接断开后类似于删除,变为不可用状态
sDs7,永久数据集链接断开后不删除,数据集依然可用状态
sDs8,多次创建和删除永久数据集测试,数据集为多成员数据集
sDs9,多次创建和删除非永久数据集测试,数据集为多成员数据集
sDs10,数据集获取数值和设置数值
sDs11,创建永久数据集(最大成员)最大个数
sDs12,创建非永久数据集(最大成员)最大个数
sDs13,创建永久数据集(最大名称长度32 char)最大个数
sDs14,创建非永久数据集(最大名称长度32 char)最大个数
sDs15,创建从少到多层级的FCDA元素
• MMXU.PhV
• MMXU.A.phsA
• MMXU.A.phsB.cVal
• MMXU.A.phsC.cVal.mag
• MMXU.A.neut.cVal.mag.f
sDsN1,数据集服务非法参数测试
sDsN2,重复创建两个完全相同的永久数据集测试,第二次创建时提示error with errorClass=definition errorCode=object-exists
sDsN3,重复创建两个完全相同的非永久数据集测试,第二次创建时提示error with errorClass=definition errorCode=object-exists
sDsN4,持续创建永久数据集,直到提示创建否定应答,response- with errorClass=resource and errorCode=capability-unavailable,已创建数据集总个数大于或等于支持的最大数据集个数
sDsN5,持续创建非永久数据集,直到提示创建否定应答,response- with errorClass=resource and errorCode=capability-unavailable,已创建数据集总个数大于或等于支持的最大数据集个数
sDsN6,使用未知的数据引用创建永久数据集,否应应答,response- with errorClass=definition and errorCode=object-undefined
sDsN7,使用未知的数据引用创建非永久数据集,否应应答,response- with errorClass=definition and errorCode=object-undefined
sDsN8,删除预配置的数据集(不可删除的,未被报告控制块引用的),response+ with numberMatched=1 and numberDeleted = 0
sDsN9,删除2次永久数据集,第一次应答 response+ with numberMatched=1 and numberDeleted = 1,第二次应答response+ with numberMatched=0 and numberDeleted = 0
sDsN10,删除2次非永久数据集,第一次应答 response+ with numberMatched=1 and numberDeleted = 1,第二次应答response+ with numberMatched=0 and numberDeleted = 0
sDsN11,删除被引用的永久数据集
引用数据集的URCB使能,删除数据集时响应 response- with MMS service error with errorClass “service”, errorCode “object-constraint-conflict”
and serviceSpecificInformation deleteNamedVarList 0
引用数据集的URCB禁能,删除数据集时响应response- with MMS service error with errorClass “service”, errorCode “object-constraint-conflict”
and serviceSpecificInformation deleteNamedVarList 0
引用数据集的URCB与数据集分离,响应response+ with numberMatched=1 and NumberDeleted=1
sDsN12,删除被引用的非永久数据集,测试同sDsN11
sDsN13,对只读数据属性进行SetDataSetValues设置数据集值操作,响应response- with errorCode=object-access-denied
4、服务追踪
sTrk1, 缓存报告控制块BRCB跟踪测试
client1为LTRK.BrcbTrk[SR]配置引用数据集的一个BRCB或URCB或LCB,配置触发选项为数据更新以及上报原因
server上报的报告包含跟踪的数据集成员对象或者创建了日志条目
client2配置另一个BRCB,配置触发选项、上报原因,使能上报,并执行总召GI请求
server上报的报告包含跟踪的数据集成员对象或者创建日志条目并记录原因
sTrk2, 非缓存报告控制块URCB跟踪测试,同sTrk1
sTrk3,日志控制块跟踪测试
sTrk4,goose控制块跟踪测试
sTrk5,多路采样值SV控制块跟踪测试、
sTrk6,单路采样值SV控制块跟踪测试
sTrk7,定值组控制块跟踪测试
client1为LTRK.SgcbTrk[SR] 配置引用数据集的一个BRCB或URCB或LCB,配置触发选项为数据更新以及上报原因
client2改变定制组状态,包括选择定值组,编辑定制组,设置定值组值,server发送给client1的报告包含跟踪的数据集成员或者创建日志条目并记录原因
sTrk8,单点控制跟踪测试
client1为LTRK.SpcTrk[SR]配置引用数据集的一个BRCB或URCB或LCB,配置触发选项为数据更新以及上报原因
client2进行单点控制,包括选择、执行、取消等操作,server发送给client1的报告包含跟踪的数据集成员或者创建日志条目并记录原因
sTrk9,双点控制跟踪测试,参考sTrk8
sTrk10,整形控制跟踪测试,参考sTrk8
sTrk11,枚举控制跟踪测试,参考sTrk8
sTrk12,整数步进控制跟踪测试,参考sTrk8
sTrk13,二进制步进控制跟踪测试,参考sTrk8
sTrk14,浮点型模拟设点控制跟踪测试,参考sTrk8
sTrk15,整型模拟设点控制跟踪测试,参考sTrk8
sTrk16,二进制模拟设点控制跟踪测试,参考sTrk8
sTrk17,其他支持服务跟踪测试,参考sTrk8
5、取代测试用例
sSub1,测试subEna为假时,subVal、subMag等取代值不会立即对过程值进行取代,subEna为真时,subVal、subMag等会立即取代过程值
sSub2,测试subEna为假时,设置subVal、subMag等取代值,再设置subEna为真,立即取代过程值,然后断开连接并重新连接,确认subVal、subMag等取代值未改变
sSub3,测试subEna为假时,设置subVal、subMag等取代值,再设置subEna为真,立即取代过程值,再继续设置subVal、subMag等取代值,确认subVal、subMag等取代值已取代了上次的取代值
6、控制测试用例
sCtl1,检查控制对象路径以及控制模式
sCtl2,改变控制模式测试,分别设置为direct-with-normal-security、SBO-with-normal-security、direct-with-enhanced-security、SBO-with-enhanced-security
正确响应
sCtl3,激活第二次激活的控制对象
client给控制对象1和控制对象2发送相同的时间激活时间operTm,两个都应答且到执行时间能够执行操作命令
sCtl4,stSeld状态测试,client发送选择(或选择带值)和执行,server响应并置stSeld状态
sCtl5,test flag和test mode测试,LN.Beh=on,client发送带有test flag的正确控制命令,命令无法下发
sCtl6,选择取消多个SBO控制对象
client选择多个SBO控制对象,无内联的多个控制对象响应正常,内联的多个控制对象响应异常
client 取消已经选择的控制对象,响应正确
sCtl7,Check条件检查
sCtl8,对SBO对象直接控制
sCtl9,对SBO对象连续选择2次
sCtl10,选择值或者操作值与当前值一样
sCtl11,对SBO对象从2个client进行选择2次测试
sCtl13,对直控对象进行选择
sCtl14,对直控对象从2个client进行操作2次测试
sCtl15,对不可控制的逻辑节点对象进行控制
逻辑节点Beh=off(设置Mod为Off,LLN0.Mod=Off)
sCtl16,对本地模式的控制对象操作
(LLN0.Loc=True or CSWI.Loc=True)
sCtl17 DOns,对本地模式的控制对象进行站控操作
(LLN0.Loc=True or CSWI.Loc=True)
sCtl17 SBOns,对本地模式的控制对象进行站控操作
(LLN0.Loc=True or CSWI.Loc=True)
sCtl17 SBOes,对本地模式的控制对象进行站控操作
(LLN0.Loc=True or CSWI.Loc=True)
sCtl18,当命令被闭锁的时候控制对象
(CmdBlk.stVal=TRUE, Mod.stVal = on)
sCtl20,选择后参数改变
sCtl21,改变达到极限测试
sCtl23,APC超越测试
sCtl24,APC测量值偏移
sCtl25,取消未选择测试
sCtl26,取消测试
sCtl27,对SBOns对象选择带值得测试
sCtl28,
DOns,Verify FC=OR attributes opOk, opRcvd, tOpOk
DOes,Verify FC=OR attributes opOk, opRcvd, tOpOk
SBOns,Verify FC=OR attributes opOk, opRcvd, tOpOk
SBOes,Verify FC=OR attributes opOk, opRcvd, tOpOk
7、文件传输
UCA详细测试用例下载:
链接: https://pan.baidu.com/s/1TTMlYRfzKITgrkWwwtcrDg 提取码: wrwx
欢迎关注!!
相关文章:

IEC61850实现方案和测试-2
IEC61850实现方案和测试-1作为介绍实现方案和测试的第二篇文章,后续会继续更新,欢迎关注。 第一篇是:IEC61850实现方案和测试-1-CSDN博客 UCA详细测试用例下载: 链接: https://pan.baidu.com/s/1TTMlYRfzKITgrkWwwtcrDg 提取码:…...

flume-将日志采集到hdfs
看到hdfs大家应该做什么? 是的你应该去把集群打开, cd /export/servers/hadoop/sbin 启动集群 ./start-all.sh 在虚拟机hadoop02和hadoop03上的conf目录下配置相同的日志采集方案,‘ cd /export/servers/flume/conf 切换完成之后&#…...

一文学习开源框架LeakCanary
LeakCanary 简介 LeakCanary 是一个由 Square 开发的开源工具,主要用于检测和诊断 Android 应用中的内存泄漏问题。它通过自动化的方式帮助开发者捕捉和分析可能导致内存泄漏的对象,简化了内存问题的排查过程。 LeakCanary 的功能 自动检测内存泄漏&a…...

jetson orin系列开发版安装cuda的gpu版本的opencv
opencv安装包下载地址: https://github.com/opencv/opencv/扩展库下载地址: https://github.com/opencv/opencv_contrib1. 删除jetpack包中的opencv版本 原先的opencv库安装在目录/usr/lib/aarch64-linux-gnu/下(一般其他的第三方库也都安…...

数据结构-8.Java. 七大排序算法(中篇)
本篇博客给大家带来的是排序的知识点, 由于时间有限, 分两天来写, 中篇主要实现后三种排序算法: 冒泡排序,快速排序,下一篇讲 归并排序. 文章专栏: Java-数据结构 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作…...

数据结构C语言描述4(图文结合)--栈的实现,中序转后序表达式的实现
前言 这个专栏将会用纯C实现常用的数据结构和简单的算法;有C基础即可跟着学习,代码均可运行;准备考研的也可跟着写,个人感觉,如果时间充裕,手写一遍比看书、刷题管用很多,这也是本人采用纯C语言…...

python基本数据类型 -- 元组tuple
在 Python 中,元组(Tuple)是一种轻量级的、不可变的数据结构。与列表类似,元组用于存储有序的数据集合,但它一旦创建,其内容就无法更改。这种特性让元组在某些场景下更加安全和高效。本文将从定义、操作、应…...

tcpdump交叉编译
TCPDUMP在Libpcap上开发。 首先需要编译libcap。 网上那么多教程,下载地址都只给了一个英文的官网首页, 你尽可以试试,从里面找到下载地址都要费半天时间。 \color{red}网上那么多教程,下载地址都只给了一个英文的官网首页&#…...

Spring IOC注入方式、Bean作用域
Spring IOC注入 手动注入 set方法注入 需要提供set方法 public class UserService {private UserDao userDao; public void setUserDao(UserDao userDao) {this.userDao userDao;} } 设置属性字段的值 <bean id"userService" class"com.shsxt.servi…...

uniapp微信小程序转发跳转指定页面
onShareAppMessage 是微信小程序中的一个重要函数,用于自定义转发内容。当用户点击右上角的菜单按钮,并选择“转发”时,会触发这个函数。开发者可以在这个函数中返回一个对象,用于定义分享卡片的标题、图片、路径等信息。 使用场…...

利用uniapp开发鸿蒙:运行到鸿蒙模拟器—踩坑合集
从uniapp运行到鸿蒙模拟器上这一步,就有非常多的坑,一些常见的坑,官网都有介绍,就不再拿出来了,这里记录一下官网未记录的大坑 1.运行路径从hbuilderx启动鸿蒙模拟器 解决方法: Windows系统,官…...

【Vue】Vue3.0(二十五)Vue3.0中的具名插槽 的概念和使用场景
上篇文章 【Vue】Vue3.0(二十四)Vue3.0中 r e f s 、 refs 、 refs、parent 的概念和使用场景 🏡作者主页:点击! 🤖Vue专栏:点击! ⏰️创作时间:2024年11月20日16点30分 …...

【pytorch-02】:张量的索引、形状操作和常见运算函数
文章目录 1 张量索引1.1 简单行列索引和列表索引1.2 布尔索引和多维索引 2 张量的形状操作2.1 reshape函数2.2 transpose和permute函数的使用2.3 view和contiguous函数2.4 squeeze和unsqueeze函数用法2.5 张量更改形状小结 3 常见运算函数 1 张量索引 1.1 简单行列索引和列表索…...

C语言-指针作为函数返回值及二级指针
1、指针作为函数返回值 c语言允许函数的返回值是一个指针(地址)我们将这样的函数称为指针函数,下面的例子定义一了一个函数strlong(),用来返回两个字符串中较长的一个: 1. #include <stdio…...

css 使用图片作为元素边框
先看原始图片 再看效果 边框的四个角灭有拉伸变形,但是图片的中部是拉伸的 代码 border-style: solid;/* 设置边框图像的来源 */border-image-source: url(/static/images/mmwz/index/bk_hd3x.png);/* 设置如何切割图像 */border-image-slice: 66;/* 设置边框的宽度 */border…...

Linux无sudo权限将zsh作为默认shell
由于我只有用户权限,没有sudo权限,将zsh作为用户默认shell需要密码,所以没法在系统层面进行操作,下面另寻他法。 安装zsh 可以根据网上教程去安装zsh,一般电脑上会带有zsh,可以使用下述命令查看是否安装z…...

【React 进阶】掌握 React18 全部 Hooks
一、数据更新驱动 1. useState 1. 基础介绍 useState主要用于声明和操作状态变量,可以使函数组件像类组件一样拥有state const [state, setState] useState(initialState);state:状态,作为渲染视图的数据源 setState:改变st…...

【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter) 更新以gitee为准: 文章目录 数据预测概念和适用方式线性系统的适用性 数据预测算法和卡尔曼滤波公式推导状态空间方程和观测器先验估计后验估计…...

【SQL50】day 2
目录 1.每位经理的下属员工数量 2.员工的直属部门 3.判断三角形 4.上级经理已离职的公司员工 5.换座位 6.电影评分 7.修复表中的名字 8.患某种疾病的患者 9.删除重复的电子邮箱 1.每位经理的下属员工数量 # Write your MySQL query statement below #e1是经理,…...

【内存管理】理解 `WeakReference` 以更好地管理 Android 应用中的内存
在 Android 应用开发中,内存管理至关重要。糟糕的内存管理可能导致“内存泄漏”,即一些不再需要的对象仍然留在内存中,最终导致性能下降,甚至应用崩溃。WeakReference 就是帮助解决这个问题的一种工具。在本文中,我们将…...

解决IDEA中Maven管理界面不是层级结构的问题
文章目录 0. 前言1. 点击Maven管理界面右上角的三个点2. 勾选将模块分组3. 分组后的层级结构 更多 IDEA 的使用技巧可查看 IDEA 专栏中的文章:IDEA 0. 前言 在 IDEA 中,如果项目中有很多子模块,每个子模块中又有一个或多个子模块时…...

Linux运维篇-iscsi存储搭建
目录 概念实验介绍环境准备存储端软件安装使用targetcli来管理iSCSI共享存储 客户端软件安装连接存储 概念 iSCSI是一种在Internet协议上,特别是以太网上进行数据块传输的标准,它是一种基于IP Storage理论的存储技术,该技术是将存储行业广泛…...

深度学习基础练习:代码复现transformer重难点
2024/11/10-2024/11/18: 主要对transformer一些比较难理解的点做了一些整理,希望对读者有所帮助。 前置知识: 深度学习基础练习:从pytorch API出发复现LSTM与LSTMP-CSDN博客 【神经网络】学习笔记十四——Seq2Seq模型-CSDN博客 【官方双语】一…...

141. Sprite标签(Canvas作为贴图)
上节课案例创建标签的方式,是把一张图片作为Sprite精灵模型的颜色贴图,本节给大家演示把Canvas画布作为Sprite精灵模型的颜色贴图,实现一个标签。 注意:本节课主要是技术方案讲解,默认你有Canvas基础,如果没有Canvas基…...

【IDEA】解决总是自动导入全部类(.*)问题
文章目录 问题描述解决方法 我是一名立志把细节说清楚的博主,欢迎【关注】🎉 ~ 原创不易, 如果有帮助 ,记得【点赞】【收藏】 哦~ ❥(^_-)~ 如有错误、疑惑,欢迎【评论】指正探讨,我会尽可能第一时间回复…...

python中的OS模块的基本使用
🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的更新文章!!!🙏🙏🙏 文章目录…...

【Qt】QComboBox设置默认显示为空
需求 使用QComboBox,遇到一个小需求是,想要设置未点击出下拉列表时,内容显示为空。并且不想在下拉列表中添加一个空条目。 实现 使用setPlaceholderText()接口。我们先来看下帮助文档: 这里说的是,placeholderText是…...

LeetCode - #139 单词拆分
文章目录 前言摘要1. 描述2. 示例3. 答案题解动态规划的思路代码实现代码解析1. **将 wordDict 转换为 Set**2. **初始化 DP 数组**3. **状态转移方程**4. **返回结果** **测试用例**示例 1:示例 2:示例 3: 时间复杂度空间复杂度总结关于我们 前言 本题由于没有合适答案为以往遗…...

服务器作业4
[rootlocalhost ~]# vim 11.sh #关闭防火墙 systemctl stop firewalld setenforce 0 #1.接收用户部署的服务名称 read -p "服务名称:(nginx)" server_name if [ $server_name ! nginx ];then echo "输入的不是nginx,脚本退出" exit 1 fi # 判断是…...

IOC控制反转---相关的介绍和6大注解解读(类注解+方法注解)
文章目录 1.传统方式造车2.传统方法的弊端3.IOC的引入3.IOC对于图书管理系统进行改进(初识)4.注解的使用说明4.1controller注解4.2service注解4.3component注解4.4关于spring命名的问题4.5component重命名4.6repository注解4.7configuration注解4.8注解之…...