#6669. 第一个只出现一次的字符
第一个只出现一次的字符
NOIP2017 普及组初赛阅读程序第 1 题
题目:第一个只出现一次的字符
知识点分类
| 字段 | 内容 |
|---|---|
| 来源 | NOIP2017 普及组初赛阅读程序改编 |
| 知识点 | 字符串、字符计数、频次数组、顺序扫描 |
| 难度 | Level 2 单点应用 |
| 适合课程 | 字符串基础、数组计数、桶计数入门之后 |
| 训练目标 | 理解“先统计,再按原顺序查找”的程序阅读思路 |
题目描述
给定一个只包含大小写英文字母和数字的字符串 s。
请你找出字符串中第一个只出现一次的字符,并输出它。
如果字符串中不存在只出现一次的字符,输出 no。
输入格式
一行,一个字符串 s。
输出格式
输出一个字符,表示第一个只出现一次的字符。
如果不存在,输出:
no
样例 1
输入:
xyzxyw
输出:
z
说明:
x 和 y 都出现了 2 次,z 是从左到右第一个只出现 1 次的字符。
样例 2
输入:
aabbcc
输出:
no
样例 3
输入:
abacabad
输出:
c
数据范围
| 测试点编号 | |s| ≤ | 特殊性质 | 设计目的 |
|---|---|---|---|
| 1 | 单字符 | 覆盖最小输入 | |
| 2, 3 | 10 | 全部字符都只出现一次 | 检查是否按原顺序输出第一个字符 |
| 4, 5 | 20 | 不存在只出现一次的字符 | 检查 no 的处理 |
| 6, 7 | 100 | 唯一字符在中间或末尾 | 防止只看局部或提前判断错误 |
| 8, 9 | 10³ | 混合大小写和数字 | 检查字符种类处理 |
| 10 | 10⁵ | 长字符串 | 检查时间复杂度,应为线性 |