文章
117
粉丝
160
获赞
0
访问
3.8k

评分及理由
(1)得分及理由(满分4分)
得分:1分
理由:学生的算法思想描述不清晰且存在逻辑问题。基本思路是使用双层循环遍历两个链表,通过比较每个结点的后继指针是否相同来寻找共同后缀起始位置。这种方法虽然能解决问题,但效率较低(O(n²)),且描述中"str1的后一位置"等表述不够准确。与标准答案中先计算长度差再同步遍历的高效方法(O(m+n))相比,设计思想不够优化,因此扣3分。
(2)得分及理由(满分8分)
得分:3分
理由:代码实现存在多处逻辑错误:
1. 函数返回类型应为LinkNode*而非LinkList*
2. 内层循环中q指针没有重置,当p移动后,q仍然指向链表末尾
3. 缺少对空链表的处理
4. 当没有共同后缀时,函数没有返回NULL
5. 比较的是p->next和q->next,而非p和q本身
代码虽然体现了寻找共同后缀的基本思路,但由于上述逻辑错误,只能实现部分功能,因此扣5分。
(3)得分及理由(满分1分)
得分:1分
理由:学生正确分析了自己算法的时间复杂度为O(n²),与实现的算法一致,因此得1分。
题目总分:1+3+1=5分
登录后发布评论
暂无评论,来抢沙发