本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。
一方面用于学习记录与分享,
另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。
如有侵权,请留言作删文处理。
课程视频链接:
数据结构与算法基础–第06周01–第4章串、数组和广义表1-4.1串的定义
📚 【Week06】01_串、数组和广义表
线性结构可表示为
(a_1, a_2, ..., a_n)
栈和队列是操作受限的线性表;
串是内容受限的线性表;
数组和广义表是线性结构的推广。
串的定义
串(string):零个或多个任意字符组成的有限序列
串的术语
(1) 子串
一个串种任意个连续字符组成的子序列(含空串)称为该串的子串。
例如
"abcde"
的子串有:
""
"a"
"ab"
"abc"
"abcd"
"abcde"
真子串是指不包含自身的所有子串。
(2) 主串
包含子串的串相应地称为主串。
(3) 字符位置
字符在序列中的序号为该字符在串中的位置。
(4) 子串位置
子串第一个字符在主串中的位置。
(5) 空格串
由一个或多个空格组成的串,与空串不同。
例如:字符串
a = "BEI"
b = "JING"
c = "BEIJING"
d = "BEI JING"
它们的长度分别是
3
4
7
8
c 的子串是:字符串 a 和字符串 b
d 的子串是:字符串 a 和字符串 b
字符串 a 在字符串 c 中的位置:1
字符串 a 在字符串 d 中的位置:1
字符串 b 在字符串 c 中的位置:4
字符串 b 在字符串 d 中的位置:5
(6) 串相等
当且仅当两个串的长度相等并且各个对应位置上的字符都相同时,这两个串才是相等的。
例如:
"abcd" ≠ "abc"
"abcd" ≠ "abcde"