个人项目-论文查重
作业
| 作业课程 | 班级链接 |
|---|---|
| 作业要求 | 作业链接 |
| 作业目标 | 个人项目-论文查重 |
1.项目地址
2.PSP
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 20 | 20 |
| Estimate | 估计这个任务需要多少时间 | 10 | 10 |
| Development | 开发 | 300 | 300 |
| Analysis | 需求分析 (包括学习新技术) | 30 | 30 |
| Design Spec | 生成设计文档 | 30 | 30 |
| Design Review | 设计复审 | 30 | 30 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
| Design | 具体设计 | 30 | 30 |
| Coding | 具体编码 | 60 | 60 |
| Code Review | 代码复审 | 60 | 30 |
| Test | 测试(自我测试,修改代码,提交修改) | 30 | 40 |
| Reporting | 报告 | 60 | 90 |
| Test Repor | 测试报告 | 30 | 40 |
| Size Measurement | 计算工作量 | 10 | 10 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 30 |
| Total | 合计 | 740 | 790 |
3.函数设计
- 一个读入文件进字符串对象的函数
- 一个对两个字符串求重复率的函数
- 对编码的初始化的函数
4.算法核心
原本采用O(NM)的动态规划算法求得最长公共子序列,然而有点慢。因为中文字符集较大,重复字符较少,于是对其进行优化,记录一个字符串所有字符出现位置,再遍历另一个字符串时,将同字符的位置倒序插入,得到一个新的序列,对序列求最长上升子序列即是答案。
5.设计流程

6.性能分析


7.异常处理
当路径数不足或路径无效时提示并结束程序。
8.测试

对提供的测试文件,结果依次为0.84,0.82,0.97,0.84,0.68
心得与改进
原本不以为意的编码问题折腾了好一阵子,原本在vscode上无法运行的代码在vs上可以顺利运行。不是很懂。
可以将对重复率无影响的标点符号删去,因为标点符号出现频率较高,可以有效提高程序运行速度。

浙公网安备 33010602011771号