关键算法解析
1. 去重统计:使用结构体数组存储首次出现的姓名,后续重复姓名仅增加计数器(时间复杂度O(n2)O(n^2)O(n2),因题目限制n≤20可接受)
2. 顺序保持:严格按照首次输入顺序存储和输出,满足题目要求
3. 终止机制:通过检测"0"字符串终止输入循环
复杂度分析
* 空间复杂度:O(1)O(1)O(1)(固定大小数组)
* 时间复杂度:O(mn)O(mn)O(mn)(m为总输入次数,n为不同姓名数)
输入输出示例解析
以样例输入为例:
程序执行流程:
1. 首次遇到"Sherry"存入stu[1],计数器=1
2. 首次遇到"David"存入stu[2],计数器=1
3. 再次遇到"David"时找到stu[2],计数器增至2
4. 最终输出时遍历stu数组,保持原始顺序
该实现严格满足题目要求的:
* 按首次出现顺序输出
* 正确统计重复次数
* 处理最大20个不同学生的限制条件