在 TOC 中,对字符串执行哪些不同的操作?
字符串是从某个字母表中选择的一组有限的符号序列。
例如:
- 00011001 是来自二进制字母表 Σ={0,1} 的一个字符串
- aabbcabcd 是来自字母表 Σ={a,b,c,d} 的一个字符串
下面解释了对字符串执行的不同操作:
- 连接。
- 子串。
- 克林闭包运算。
- 反转。
连接
连接就是将两个字符串一个接一个地组合起来。
示例
让我们考虑两个字符串:
X= Tutorials
Y= Point
两个字符串的连接 (X, Y) 为:
X.Y = TutorialsPoint
注意:空字符串与其他字符串的连接结果为字符串本身。
例如,X. ε = ε.X = X
子串
如果 'w' 是一个字符串,那么 'v' 是 'w' 的子串,如果存在字符串 x 和 y 使得 w=xvy
'x' 称为 '前缀',y 称为 w 的后缀。
示例
让我们考虑 w='Theory',它定义了前缀 x='The' 和后缀 y='ry'。
子串是 v='o',因为 w=xvy 并且 Theory= Thevry
因此,v=o
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
克林闭包运算
设 'w' 为一个字符串。w* 是通过将 w 与自身进行任意次数的连接(包括空字符串)获得的字符串集合。
示例
a*= { ε,a,aa,aaa,………}
反转运算
如果 'w' 是一个字符串,那么 wR 是该字符串的反转(倒序)。
规则
反转运算的规则如下:
- x=(xR)R
- (xz)R= zR.xR
示例
字符串 x 定义为 x= tutorial,则 (xR)R 为 tutorial。这是因为:
X= tutorial
(x)R= lairotut
(xR)R= tutorial
广告