一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于双数组结构的括号配对方法、设备及存储介质与流程

2022-05-06 10:56:10 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其是涉及一种基于双数组结构的括号配对方法、设备及存储介质。


背景技术:

2.程序员在编写程序时会用到各种框架,框架中会提供许多函数,有的可以直接调用源代码,而有的需要手动输入。由于数据量过于庞大,在编程过程中难免会出现输入错误的情况,编译器是整个软件开发过程中不可或缺的一部分,编译器不仅可以将高级编程语言编写的程序转换为计算机可识别的目标语言,还有一个重要任务,就是在翻译过程中发现程序中出现的错误。
3.随着技术的发展,编译器也拥有了大量的代码优化技术,大部分用户编写程序都是使用编译器编译,然而还有一些高级程序员为了开发出满足客户需求的产品时,不使用编译器,采用纯手写代码的形式,除此之外,还有一些不能直接调用源代码的程序也需要手动输入。纯手写代码很容易出错,当函数使用过多时,往往会出现括号丢失的情况,手动检查括号配对会带来大量没必要的任务量,耽误工作进出,因此,确保括号配对正确尤其重要。


技术实现要素:

4.有鉴于此,本技术提出了一种基于双数组结构的括号配对方法、设备及存储介质,用于解决在没有编译器的情况下,纯手写代码如何检测括号配对是否正确的问题。
5.本发明的技术方案是这样实现的:
6.本发明提供了一种基于双数组结构的括号配对方法,所述方法包括:
7.s1,获取多段括号匹配正确的完整代码和括号匹配不正确的非完整代码并作为目标代码;
8.s2,从目标代码中提取特征信息;
9.s3,采用双数组结构建立检测模型,将所述特征信息输入检测模型,训练并生成用于检测括号匹配是否正确的检测模型,作为最终检测模型;
10.s4,获取待检测代码,从待检测代码中提取特征信息并输入至最终检测模型,得到检测结果。
11.在以上技术方案的基础上,优选的,步骤s2具体包括:
12.接收对目标代码的遍历请求;
13.根据遍历请求,生成遍历任务,同时生成与遍历任务所对应的存储节点,每个存储节点至少包括一个存储块;
14.对所述遍历任务进行拆分,得到若干个子任务,每一个子任务均与一个存储块对应;
15.获取每个子任务,在与子任务相应的存储块中进行目标代码的遍历,得到遍历结
果,并将遍历结果存储在相应的存储块中;
16.提取所有存储块中的遍历结果,即正括号和反括号,作为目标代码的特征信息。
17.在以上技术方案的基础上,优选的,步骤s3具体包括:
18.s301,构建第一数组和第二数组,并将第一数组和第二数组进行初始化处理,建立一个共同索引;
19.s302,将所述特征信息中的正括号放入第一数组,将所述特征信息中的反括号放入第二数组;
20.s303,根据第二数组确定接下来遍历的范围;
21.s304,对第一数组或第二数据进行遍历,得到检测结果。
22.在以上技术方案的基础上,优选的,步骤s302具体包括:
23.在将所述特征信息中的正括号放入第一数组和所述特征信息中的反括号放入第二数组的过程中共用一个共同索引。
24.在以上技术方案的基础上,优选的,步骤s303具体包括:
25.获取第二数组中最后一位数据不为空的索引值,将该索引值作为遍历的范围。
26.在以上技术方案的基础上,优选的,步骤s304具体包括:
27.选择第一数组和第二数组中其中一个数组作为待遍历数组,选择另一个数组作为参考数组;
28.对待遍历数据进行遍历,当遍历到正括号或反括号时,记录共同索引的位置;
29.获取参考数组中与共同索引的位置呈镜像对称的位置,记为镜像位置;
30.判断镜像位置是否不为空。
31.在以上技术方案的基础上,优选的,判断镜像位置是否不为空具体包括:
32.若镜像位置不为空,则说明括号配对正确;
33.若镜像位置为空,则说明此处括号丢失,括号配对不正确,对该位置进行标记。
34.在以上技术方案的基础上,优选的,步骤s3还包括:
35.记录目标代码中所有括号匹配正确的完整代码和括号匹配不正确的非完整代码的检测结果,统计出检测正确率;
36.设置一个目标阈值,当检测正确率大于目标阈值时,将当前检测模型作为最终检测模型;
37.反之则继续对当前检测模型进行训练,直至检测正确率大于目标阈值。
38.此外,为实现上述目的,本发明还提供了一种基于双数组结构的括号配对设备,所述基于双数组结构的括号配对设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的括号配对程序,所述括号配对程序被所述处理器执行时实现如下步骤:
39.获取多段括号匹配正确的完整代码和括号匹配不正确的非完整代码并作为目标代码;
40.从目标代码中提取特征信息;
41.采用双数组结构建立检测模型,将所述特征信息输入检测模型,训练并生成用于检测括号匹配是否正确的检测模型,作为最终检测模型;
42.获取待检测代码,从待检测代码中提取特征信息并输入至最终检测模型,得到检
测结果。
43.此外,为实现上述目的,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有括号配对程序,所述括号配对程序在被处理器执行时实现如上所述的基于双数组结构的括号配对方法的步骤。
44.本发明的一种基于双数组结构的括号配对方法、设备及存储介质,相对于现有技术,具有以下有益效果:
45.(1)通过一个共同索引将目标代码中的正括号和反括号分别存储到两个数组中,对其中的一个数组进行遍历,判断另一数组中是否存在对应的括号,整个遍历过程中仅用到一个索引,降低了计算的复杂度,提高了检测效率。
46.(2)采用大量的括号匹配正确的完整代码和括号匹配不正确的非完整代码对检测模型进行训练,直至训练出检测正确率符合标准的检测模型,提高了系统的容错率。
附图说明
47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1为本发明一种基于双数组结构的括号配对方法的流程示意图;
49.图2为本发明一种基于双数组结构的括号配对方法中采用双数组结构建立检测模型的流程示意图;
50.图3为本发明一种基于双数组结构的括号配对方法的一个具体实施例中数据存放的结构示意图。
具体实施方式
51.下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
52.如图1所示,本实施例提供了一种基于双数组结构的括号配对方法,其方法包括:
53.s1,获取多段括号匹配正确的完整代码和括号匹配不正确的非完整代码并作为目标代码。
54.需要理解的是,本实施例中的括号包括很多种,例如圆括号、花括号、方括号、尖括号等,在此不做限制。
55.s2,从目标代码中提取特征信息。
56.具体的,从目标代码中提取特征信息的步骤包括:
57.接收对目标代码的遍历请求;
58.根据遍历请求,生成遍历任务,同时生成与遍历任务所对应的存储节点,每个存储节点至少包括一个存储块;
59.对所述遍历任务进行拆分,得到若干个子任务,每一个子任务均与一个存储块对
应;
60.获取每个子任务,在与子任务相应的存储块中进行目标代码的遍历,得到遍历结果,并将遍历结果存储在相应的存储块中;
61.提取所有存储块中的遍历结果,即正括号和反括号,作为目标代码的特征信息。
62.需要理解的是,本实施例中,遍历任务为提取目标代码中的花括号,子任务为代码的具体某一行是否存在花括号,包括花括号的正括号和反括号,先遍历代码的所有字节,将符合子任务的字节存放进相应的存储块,最终提取出目标代码中所有的花括号。
63.通过遍历找出目标代码中所有的括号,减少了后续检测模型进行检测时的任务量,提高了工作效率,也避免了检测模型因数据过多导致出错的问题。
64.s3,采用双数组结构建立检测模型,将所述特征信息输入检测模型,训练并生成用于检测括号匹配是否正确的检测模型,作为最终检测模型。
65.进一步的,如图2所示,步骤s3具体包括:
66.s301,构建第一数组和第二数组,并将第一数组和第二数组进行初始化处理,建立一个共同索引。
67.s302,将所述特征信息中的正括号放入第一数组,将所述特征信息中的反括号放入第二数组。
68.具体的,在将所述特征信息中的正括号放入第一数组和所述特征信息中的反括号放入第二数组的过程中共用一个共同索引。
69.如图3所示,本实施例中,采用一个共同索引将花括号的正括号和反括号分别存放进两个数组中,存放结果如图所示,采用同一个索引,不仅减少了数据所占用的内存,还为后续的括号配对提供了便利。
70.s303,根据第二数组确定接下来遍历的范围。
71.具体的,获取第二数组中最后一位数据不为空的索引值,将该索引值作为遍历的范围。
72.s304,对第一数组或第二数据进行遍历,得到检测结果。
73.具体的,选择第一数组和第二数组中其中一个数组作为待遍历数组,选择另一个数组作为参考数组;
74.对待遍历数据进行遍历,当遍历到正括号或反括号时,记录共同索引的位置;
75.获取参考数组中与共同索引的位置呈镜像对称的位置,记为镜像位置;
76.判断镜像位置是否不为空。
77.判断镜像位置是否不为空具体包括:
78.若镜像位置不为空,则说明括号配对正确;
79.若镜像位置为空,则说明此处括号丢失,括号配对不正确,对该位置进行标记。
80.通过一个共同索引将目标代码中的正括号和反括号分别存储到两个数组中,对其中的一个数组进行遍历,判断另一数组中是否存在对应的括号,整个遍历过程中仅用到一个索引,降低了计算的复杂度,提高了检测效率。
81.步骤s3还包括:
82.记录目标代码中所有括号匹配正确的完整代码和括号匹配不正确的非完整代码的检测结果,统计出检测正确率;
83.设置一个目标阈值,当检测正确率大于目标阈值时,将当前检测模型作为最终检测模型;
84.反之则继续对当前检测模型进行训练,直至检测正确率大于目标阈值。
85.需要理解的是,本实施例中,为了提高检测的准确率,目标阈值设置为99.5%,当当前检测模型的检测正确率大于99.5%时,则为合格的建模模型,将当前检测模型作为最终检测模型。
86.s4,获取待检测代码,从待检测代码中提取特征信息并输入至最终检测模型,得到检测结果。
87.此外,本实施例还提出了一种基于双数组结构的括号配对设备,所述基于双数组结构的括号配对设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的括号配对程序,所述括号配对程序被所述处理器执行时实现如下步骤:
88.获取多段括号匹配正确的完整代码和括号匹配不正确的非完整代码并作为目标代码;
89.从目标代码中提取特征信息;
90.采用双数组结构建立检测模型,将所述特征信息输入检测模型,训练并生成用于检测括号匹配是否正确的检测模型,作为最终检测模型;
91.获取待检测代码,从待检测代码中提取特征信息并输入至最终检测模型,得到检测结果。
92.此外,本实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有括号配对程序,所述括号配对程序在被处理器执行时实现如上所述的基于双数组结构的括号配对方法的步骤。
93.本发明计算可读存储介质的具体实施例与上述基于双数组结构的括号配对方法基本相同,在此不做赘述。
94.以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献