字符串基础

历届世界杯主题曲 3024

字符串基础定义字符集一个 字符集 ΣΣ 是一个建立了 全序 关系的集合,也就是说,ΣΣ 中的任意两个不同的元素 𝛼α 和 𝛽β 都可以比较大小,要么 𝛼 <𝛽α<β,要么 𝛽 <𝛼β<α。字符集 ΣΣ 中的元素称为字符。

字符串一个 字符串 𝑆S 是将 𝑛n 个字符顺次排列形成的序列,𝑛n 称为 𝑆S 的长度,表示为 |𝑆||S|。

如果字符串下标从 11 开始计算,𝑆S 的第 𝑖i 个字符表示为 𝑆[𝑖]S[i];

如果字符串下标从 00 开始计算,𝑆S 的第 𝑖i 个字符表示为 𝑆[𝑖 −1]S[i−1]。

子串字符串 𝑆S 的 子串 𝑆[𝑖..𝑗],𝑖 ≤𝑗S[i..j],i≤j,表示 𝑆S 串中从 𝑖i 到 𝑗j 这一段,也就是顺次排列 𝑆[𝑖],𝑆[𝑖 +1],…,𝑆[𝑗]S[i],S[i+1],…,S[j] 形成的字符串。

有时也会用 𝑆[𝑖..𝑗]S[i..j],𝑖 >𝑗i>j 来表示空串。

子序列字符串 𝑆S 的 子序列 是从 𝑆S 中将若干元素提取出来并不改变相对位置形成的序列,即 𝑆[𝑝1],𝑆[𝑝2],…,𝑆[𝑝𝑘]S[p1],S[p2],…,S[pk],1 ≤𝑝1 <𝑝2 <⋯ <𝑝𝑘 ≤|𝑆|1≤p1

后缀后缀 是指从某个位置 𝑖i 开始到整个串末尾结束的一个特殊子串。字符串 𝑆S 的从 𝑖i 开头的后缀表示为 𝑆𝑢𝑓𝑓𝑖𝑥(𝑆,𝑖)Suffix(S,i),也就是 𝑆𝑢𝑓𝑓𝑖𝑥(𝑆,𝑖) =𝑆[𝑖..|𝑆| −1]Suffix(S,i)=S[i..|S|−1]。

真后缀 指除了 𝑆S 本身的 𝑆S 的后缀。

举例来说,字符串 abcabcd 的所有后缀为 {d, cd, bcd, abcd, cabcd, bcabcd, abcabcd},而它的真后缀为 {d, cd, bcd, abcd, cabcd, bcabcd}。

前缀前缀 是指从串首开始到某个位置 𝑖i 结束的一个特殊子串。字符串 𝑆S 的以 𝑖i 结尾的前缀表示为 𝑃𝑟𝑒𝑓𝑖𝑥(𝑆,𝑖)Prefix(S,i),也就是 𝑃𝑟𝑒𝑓𝑖𝑥(𝑆,𝑖) =𝑆[0..𝑖]Prefix(S,i)=S[0..i]。

真前缀 指除了 𝑆S 本身的 𝑆S 的前缀。

举例来说,字符串 abcabcd 的所有前缀为 {a, ab, abc, abca, abcab, abcabc, abcabcd}, 而它的真前缀为 {a, ab, abc, abca, abcab, abcabc}。

字典序以第 𝑖i 个字符作为第 𝑖i 关键字进行大小比较,空字符小于字符集内任何字符(即:𝑎 <𝑎𝑎a

回文串回文串 是正着写和倒着写相同的字符串,即满足 ∀1 ≤𝑖 ≤|𝑠|,𝑠[𝑖] =𝑠[|𝑠| +1 −𝑖]∀1≤i≤|s|,s[i]=s[|s|+1−i] 的 𝑠s。

汉明距离汉明距离 是两个等长字符串之间的距离,它表示两个长度相同的字符串对应位字符不同的数量。

我们可以简单的认为对两个串进行异或运算,结果为 11 的数量就是两个串的汉明距离。

字符串的存储使用 char 数组存储,用空字符 \0 表示字符串的结尾(C 风格字符串)。使用 C++ 标准库提供的 string 类。字符串常量可以用字符串字面量(用双引号括起来的字符串)表示。本页面最近更新:2025/9/23 16:22:15,更新历史发现错误?想一起完善? 在 GitHub 上编辑此页!本页面贡献者:Ir1d, minghu6, NachtgeistW, StudyingFather, countercurrent-time, Enter-tainer, H-J-Granger, ouuan, CCXXXI, mgt, AngelKitty, cjsoft, diauweb, Early0v0, ezoixx130, GekkaSaori, Konano, LovelyBuggies, Makkiy, P-Y-Y, PotassiumWings, qinggniq, SamZhangQingChuan, sshwy, Suyun514, weiyong1024, current2020, GavinZhengOI, Gesrua, ghj1222, Great-designer, Haohu Shen, HeRaNO, i-Yirannn, i-yyi, kxccc, lychees, Peanut-Tang, SukkaW, Tiphereth-A, Xeonacid本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用