CSP-J 入门级 · CSP 2022 入门级第一轮 第 14 题

选择题 · 答案 B · 考点:字符串(string)

← 整套速查表 CSP-J 入门级 全部真题

题目

一个字符串中任意个连续的字符组成的子序列称为该字符串的子串,则字符串 $\tt abcab$ 有( )个内容互不相同的子串。

答案:B

考点

字符串(string)

解题思维

这题考字符串子串计数。拿到题先别急着列,看长度n=5,总子串数n(n+1)/2=15,再想哪些会重复。本题重复的是长度1和2的'a'和'ab',减去重复数即可,比枚举去重更稳。

常见错误

最容易错在把子串和子序列搞混,子序列可以不连续,那'ac'也算,答案就变大了;其次是把重复只减一次,其实长度1的'a'重复了1次(多算1个),长度2的'ab'也重复了1次(多算1个),总共要减2,不是减1;还有人会漏掉空串是否计入,题目默认非空,空串不算。

详细解析(节选)

考察知识点:字符串 — 子串计数(含重复处理)

概念定义:

命题视角: 命题人常挖两个坑:一是混淆子串与子序列(把不连续的也算上),二是重复计数时只减一次。本题字符串较短,直接枚举也容易,但用“总数 − 重复”的思路更能体现对重复规律的理解,也适合考试时快速排除选项。

思考心法: 1. 先算所有连续子串总数:长度n的串共有 n(n+1)/2 个。本题 n=5,总数 = 5×6/2 = 15。 2. 再想哪些内容重复了,重复几次。 - 长度1:'a'出现2次,'b'出现2次,'c'出现1次 → 重复内容只有'a'和'b',每个多算1次,共 +2 个重复。 - 长度2:'ab'出现2次,'bc'1次,'ca'1次 → 重复内容只有'ab',多算1次,共 +1 个重复。 - 长度3及以上:'abc'、'bca'、'cab'、'abca'、'bcab'、'abcab' 均只出现1次,无重复。 3. 去重后数量 = 15 − 2 − 1 = 13。

避坑提醒:

考频与趋势: 字符串考点题库共99题,覆盖10个级别。其中CSP入门级仅考了6题,2022年这一题就是其中之一,说明入门级对基础概念(子串定义、去重)考察频率不高但很典型。从近年分布看,2023年字符串考了11题、2024年10题、2025年32题、2026年19题,热度明显上升,未来入门级仍可能出类似“短串去重计数”的小题,但难度不会大幅拔高。

预测: 暂无足够依据预测未来具体形式,但可预期仍会以短串枚举或简单重复规律为主,侧重辨析子串与子序列、重复计数细节。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断