软考-软件设计师:数据结构-线性结构-串

串的定义

串是仅由字符构成的 有限序列,是一种 线性表。一般记为
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


原文出处:/show_1GWu6WdKku2.html