串的定义
串是仅由字符构成的 有限序列,是一种 线性表。一般记为S='ala2a3·…an',其中,S是串名,单引号括起来的字符序
列是串值。
存储分类
- 顺序存储
- 链式存储
概念
空串
长度为零,不包含任何字符。
空格串
由一个或多个 空格 组成的串。虽然空格是一个空白字符,但它也是一个字符,在计算串长度时要将其计算在内。
子串
由串中任意长度的连续字符构成的序列称为子串。含有子串的串称为主串。子串在主串中的位置是指子串首次出现时,该子串的第一个字符在主串中的位置。空串是任意串的子串。
长度是 n 的字符串,其 非空且不同于本身 的子串的个数是:(n+2) (n-1)/2
子序列
一个串的“子序列”(subsequence)是将这个串中的一些字符提取出来得到一个新串,并且不改变它们的相对位置关系。
串比较
两个串比较大小时以字符的ASCII码值(或其他字符编码集合)作为依据。实质上,比较操作从两个的第一个字符开始进行,字符的码值大者所在的串为大;若其中一个串先结束,则以串长较大者为大。
串相等
指两个串长度相等且对应序号的字符也相同。
题
设S是一个长度为 n 的非空字符串,其中的字符各不相同,则其互异的非平凡子串(非空且不同于S本身)个数为()
A、2n-1
B、n²
C、n(n+1)/2
D、(n+2) (n-1)/2
分析
技巧:带入极端值,一般可一次算出结果
将 n 设为 1,如:字母 a,那么符合 非空且不同于S本身 的子串是 0 个
将 1 带入4个选项的公式,即可算出 D 的结果是 0,是对的
答案
D