理论教育 数据结构|串的基本概念与子串定位算法

数据结构|串的基本概念与子串定位算法

时间:2023-11-01 理论教育 版权反馈
【摘要】:an",其中S是串名,双引号中的字符序列是串的值,ai代表一个字符,可以是字母、数字或其他符号。串中所包含的字符数量称为串的长度。例如,""是长度为1的空格串,""是长度为0的空格串。当且仅当两个串的长度相等,且其对应位置上的字符均相等时,两个串相等。串中任意个连续字符组成的子序列被称为该串的子串。子串在主串中的位置用子串的首字符在主串的位置来表示。用C++描述的算法如下:

数据结构|串的基本概念与子串定位算法

串是n(n≥0)个字符组成的有限序列,一般记作S="a1 a2…ai…an",其中S是串名,双引号中的字符序列是串的值,ai代表一个字符,可以是字母、数字或其他符号。串中所包含的字符数量称为串的长度。长度为0的串为空串,它不包含任何字符。通常将仅由一个或多个空格组成的串称为空格串。例如,""是长度为1的空格串,""是长度为0的空格串。

当且仅当两个串的长度相等,且其对应位置上的字符均相等时,两个串相等。

串中任意个连续字符组成的子序列被称为该串的子串。包含子串的串被称为主串。

字符在字符序列中的序号为该字符在串中的位置。子串在主串中的位置用子串的首字符在主串的位置来表示。空串是任意串的子串,串总是其自身的子串。

例如,设A、B、C为如下的3个串:A="NJU",B="University",C="Nanjing University is short for NJU",则A、B、C的长度分别为3、10和35;A和B都是C的子串,它们在C中的位置分别是33和9。(www.daowen.com)

串的抽象数据类型定义如下:

(1)SubString()函数复制字符序列,将串s中第pos个字符开始的连续的len个字符复制到串sub中,用C++描述的算法如下:

(2)StrIndex()函数在主串中取从第pos个字符起、长度等于串t的子串与t比较,若相等,则返回pos,否则值加1,直至s中不存在和串t相等的子串为止,并返回0。用C++描述的算法如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈