开始串

This commit is contained in:
lifei
2020-12-02 16:26:16 +08:00
parent f0acd83923
commit 78768b4050
5 changed files with 86 additions and 7 deletions

View File

@@ -129,8 +129,8 @@ $$
$$
\begin{aligned}
T_3(n)
&=n^3+n^2log_2n \\
&=O(n^3)+O(n^2log_2n) \\
&=n^3+n^2log_2n\\
&=O(n^3)+O(n^2log_2n)\\
&=O(n^3)
\end{aligned}
$$
@@ -219,3 +219,5 @@ $$
## 3. [线性表](ch2/README.md)
## 4. [栈和队列](ch3/README.md)
## 5. [串](ch4/README.md)

View File

@@ -53,7 +53,7 @@ $$
$$
\frac{1}{5+1} C^{5}_{10}
=\frac{10*9*8*7*6}{6*5*4*3*2*1}
=\frac{10 \times 9 \times 8 \times 7 \times 6}{6 \times 5 \times 4 \times 3 \times 2 \times 1}
=42
$$

View File

@@ -123,10 +123,10 @@ $$
$$
\left(
\begin{matrix}
0 & 0 & 4 & 0 & 0 & 0 & 5 \\
0 & 3 & 0 & 0 & 9 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 7 & 0 \\
0 & 2 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 4 & 0 & 0 & 0 & 5\\
0 & 3 & 0 & 0 & 9 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 7 & 0\\
0 & 2 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & 0
\end{matrix}
\right)

77
ch4/README.md Normal file
View File

@@ -0,0 +1,77 @@
# 串
## 1. 定义
即字符串String是由零个或者多个字符组成的有序序列。一般记为
$$
S='a_{1}a_{2}...a_{n}'n>0
$$
- $S$ 为串名。单引号(或双引号)括起来的字符序列是串的值。
- $a_{1}$ 可以是字母、数字或其他字符。
- 串中字符的个数 $n$ 为串的长度。
- $n=0$ 时的串称为空串(用 $\varnothing$ 表示)。
### 1.1. 相关概念
- 子串:串中人一个连续的字符组成的子序列。
- 主串:包含子串的串。
- 字符在主串中的位置:字符在串中的序号。
- 子串在主串中的位置:子串的第一个字符在主串中的位置。
位置/位序从 1 开始,而不是从 0 开始。
### 1.2. 空串 V.S 空格串
```cpp
M=""
```
```cpp
N=" "
```
### 1.3. 串 V.S 线性表
串是一种特殊的线性表,数据元素之间呈线性关系。
串的数据对象限定为字符集,如:中文字符、英文字符、数字字符、标点字符等。
串的基本操作,如增删改查等通常以**子串**为操作对象。
## 2. 基本操作
- `StrAssign(&T, chars)`:赋值操作。把串 $T$ 赋值为 $chars$。
- `StrCopy(&T, S)`:复制操作。由 $S$ 复制得到串 $T$。
- `StrEmpty(S)`:判空操作。若 $S$ 为空串,则返回 `true`,否则返回 `false`
- `StrLength(S)`:求串长。返回串 $S$ 的元素个数。
- `ClearString(&S)`:清空操作。将串 $S$ 清为空串。
- `DestroyString(&S)`:销毁串。将串 $S$ 销毁(回收存储空间)。
- `Concat(&T, S1, S2)`:串连接。用 $T$ 返回由 $S1$ 和 $S2$ 连接而成的新串。
- `SubString(&Sub, S, pos, len)`:求子串。用 $Sub$ 返回串 $S$ 的第 $pos$ 个字符起长度为 $len$ 的字符串。
- `Index(S, T)`:定位操作。若主串 $S$ 中存在与串 $T$ 值相同的子串,则返回它在主串 $S$ 中第一次出现的位置,否则返回函数值 0。
- `StrCompare(S, T)`:比较操作。若 $S>T$,则返回值 $>0$;若 $S=T$,则返回值 $=0$;若 $S<T$,则返回值 $<0$。
### 2.1. 编码
![ASCII 编码](ascii.png)
任何数据存到计算机中一定是二进制数。
需要确定一个字符和二进制数的对应规则,这就是“编码”。
### 2.2. 字符集
- 英文字符ASCII 字符集
- 中英文Unicode 字符集
基于同一个字符集可可以有多种编码方案UTF-8UTF-16。
> 采用不同的编码方式,每个字符所占空间空间不同,考验中只需要默认每个字符占 1B 即可。
### 2.3. 乱码问题
在你的文件中,原本采用某一套编码规则 $y=f(x)$。
打开文件时,你的软件以为你采用的是另一套编码规则 $y=g(x)$。

BIN
ch4/ascii.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB