北京海淀区信息学竞赛 · 2023 北京市海淀区信息学竞赛(初赛)试题 第 12 题

选择题 · 答案 B

← 整套速查表 北京海淀区信息学竞赛 全部真题

题目

定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符串 $\tt{BCA}$ 可以将 $\tt{A}$ 移到 $\tt{B}$ 之前,变成字符串 $\tt{ABC}$。如果要将字符串 $\tt{DACHEBGF}$ 变成 $\tt{ABCDEFGH}$ 最少需要( )次操作。

答案:B

解题思维

本题考查字符串处理相关知识,包括子串的概念、字符串函数的使用等。

常见错误

常见误区:计算子串时遗漏重复子串,区分不清子串(连续)和子序列(可不连续)。

详细解析(节选)

核心概念:子串是字符串中任意一段连续字符组成的新字符串;长度为n的字符串有n(n+1)/2个非空子串。

推导分析:子串总数 = n(n+1)/2;strcat()用于字符串拼接,strlen()返回字符串长度。

避坑指南:含重复字符的字符串,不同子串数少于理论最大值。

解题技巧:用双指针法枚举所有子串,注意去重。

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