评分及理由
(1)得分及理由(满分4分)
学生给出了算法的基本设计思想:先计算两个链表的长度,然后让较长的链表指针先移动,使两个链表剩余长度相等,最后同步遍历直到找到相同结点。这与标准答案的思路一致,因此得4分。
(2)得分及理由(满分8分)
学生代码存在以下问题:
- 函数定义中使用了未声明的类型(如Node应为结构体类型,但未定义),但根据上下文可推断是链表结点,不扣分。
- Len函数中使用了p->Link和p->next混合(识别问题,可能为误写),但逻辑正确,不扣分。
- Find函数中,m和n未声明类型(应为int),但根据上下文可推断,不扣分。
- Find函数中,条件判断str1->data != str2->data错误:因为共同后缀的起始位置是结点地址相同(即指针相同),而不是数据相同。这是一个逻辑错误,扣2分。
- 返回h(str1->data)错误:应该返回结点指针(即共同后缀起始位置),而不是数据。这是一个逻辑错误,扣2分。
- 其他小问题(如Void应为void,但可能是识别错误)不扣分。
因此,本部分得分为8 - 2 - 2 = 4分。
(3)得分及理由(满分1分)
学生正确给出了时间复杂度为O(m + n),与标准答案一致,得1分。
题目总分:4+4+1=9分
登录后发布评论
暂无评论,来抢沙发