子数组、子序列、子串、子序列、子段的简单区别
关系图表
数组中的子数组、子序列、子段以及字符串的子串、子序列解释
类型 | 名称 | 连续性 |
数组 | 子数组 | 连续 |
子段 | 连续 | |
子序列 | 不一定连续 | |
字符串 | 子串 | 连续 |
子序列 | 不一定连续 |
数组,段和串都是连续的。序列是可断开的。
数组
1.子数组
子数组的定义:一个或连续多个数组中的元素组成一个子数组(子数组最少包含一个元素)
2.子序列
子序列的定义:子序列就是在原来序列中找出一部分组成的序列(子序列不一定连续)
在数学中,某个序列的子序列是从最初序列通过去除某些元素但不破坏余下元素的相对位置(在前或在后)而形成的新序列。
例如:数组:[1,2,3,4,5,6] ;其中一个子序列可为[2,3,6]
字符串
1.子串
子串定义:字符串中任意个连续的字符组成的子序列称为该串的子串(子串可以为空)
计算方法
ab的子串:a、b、ab和一个空子串共4个即(2+1+1)= 4个,abc的子串:a、 b、 c、 ab、 bc 、abc和一个空子串 共(3+2+1+1)= 7个,
所以若字符串的长度为n,则子串的个数就是[n*(n+1)/2]+1个;
列如:字符串"software"中非空子串的个数就是8+7+…+1=36个
2.子序列
子序列的定义:子序列就是在原来序列中找出一部分组成的序列(子序列不一定连续)
在数学中,某个序列的子序列是从最初序列通过去除某些元素但不破坏余下元素的相对位置(在前或在后)而形成的新序列