String 坚持使用Apostolico Crochemore算法

String 坚持使用Apostolico Crochemore算法,string,algorithm,full-text-search,String,Algorithm,Full Text Search,我试图理解Apostolico Crochemore算法 我找到的唯一的英文描述是,但我被第二行的描述卡住了 x是单个字符的幂 这是什么意思 m在本例中是图案的长度,c是使用中的字母表中的字符。我不明白为什么x==c^m 然后是中的(x=(a^l)bu,中的b,中的u,中的u,中的aneq b,它们也使用了我无法理解的^操作。字符串上的算法有时用正式语言的行话来描述,其中串联字符串的(连接)被写成乘法:x*y,通常只写xy,意思是“字符串x,后跟字符串y”。因此x^n(即“将字符串x提高到n次方

我试图理解Apostolico Crochemore算法

我找到的唯一的英文描述是,但我被第二行的描述卡住了

x是单个字符的幂

这是什么意思

m
在本例中是图案的长度,
c
是使用中的字母表中的字符。我不明白为什么
x==c^m


然后是
中的
(x=(a^l)bu
中的
b
中的
u
中的
u
中的
aneq b
,它们也使用了我无法理解的
^
操作。

字符串上的算法有时用正式语言的行话来描述,其中串联字符串的(连接)被写成乘法:
x*y
,通常只写
xy
,意思是“字符串
x
,后跟字符串
y
”。因此
x^n
(即“将字符串
x
提高到
n
次方”)自然意味着“
n
字符串
x
的副本,连接在一起”


虽然乘法(普通实数)和字符串串联确实具有一些抽象的数学特性,但这主要只是一种符号化手段。例如,它们都是关联的:
(xy)z=x(yz)
,无论我们谈论的是乘法还是连接字符串。(OTOH,
xy=yx
通常用于实数,但不用于字符串。但是矩阵乘法也不是可交换的。)

太棒了,在没有解释的情况下被降票:(哦,太棒了解释!!所以在我的例子中,这意味着case模式中的l=0只由长度为m的单个字符组成?