Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[pull] main from itcharge:main #46

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
pull merged 8 commits into AlgorithmAndLeetCode:main from itcharge:main
Nov 3, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update 01.String-Basic.md
  • Loading branch information
itcharge committed Nov 3, 2022
commit 3f7013c663043a0a443e753f81aa7a724d3cc9dc
20 changes: 12 additions & 8 deletions Contents/06.String/01.String-Basic/01.String-Basic.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

- **字符串名称**:字符串定义中的 `s` 就是字符串的名称。
- **字符串的值**:$a_1a_2...a_n$ 组成的字符序列就是字符串的值,一般用双引号括起来。
- **字符变量**:字符串每一个位置上的元素都是一个字符变量。字符 $a_i$ 可以是字母、数字或者其他字符。`i` 是该字符在字符串中的位置。
- **字符串的长度**:字符串中字符的数目 `n` 称为字符串的长度。
- **空串**:零个字符构成的串也成为 **「空字符串(Null String)」**,它的长度为 `0`,可以表示为 `""`。
- **字符变量**:字符串每一个位置上的元素都是一个字符变量。字符 $a_i$ 可以是字母、数字或者其他字符。$i$ 是该字符在字符串中的位置。
- **字符串的长度**:字符串中字符的数目 $n$ 称为字符串的长度。
- **空串**:零个字符构成的串也成为 **「空字符串(Null String)」**,它的长度为 0ドル$,可以表示为 `""`。
- **子串**:字符串中任意个连续的字符组成的子序列称为该字符串的 **「子串(Substring)」**。并且有两种特殊子串,起始于位置为 `0`、长度为 `k` 的子串称为 **「前缀(Prefix)」**。而终止于位置 `n - 1`、长度为 `k` 的子串称为 **「后缀(Suffix)」**。
- **主串**:包含子串的字符串相应的称为 **「主串」**。

Expand All @@ -22,25 +22,29 @@ str = "Hello World"

![](https://qcdn.itcharge.cn/images/20220117141211.png)

可以看出来,字符串和数组有很多相似之处。比如使用 `名称[下标]` 的方式来访问一个字符。之所以单独讨论字符串是因为:
可以看出来,字符串和数组有很多相似之处。比如同样使用 `名称[下标]` 的方式来访问一个字符。

之所以单独讨论字符串是因为:

- 字符串中的数据元素都是字符,结构相对简单,但规模可能比较庞大。
- 经常需要把字符串作为一个整体来使用和处理。操作对象一般不是某个数据元素,而是一组数据元素(整个字符串或子串)。
- 经常需要考虑多个字符串之间的操作。比如:字符串之间的连接、比较操作。

根据字符串的特点,我们可以将字符串问题分为以下几种:

- 字符串匹配问题;
- 子串相关问题;
- 字符串匹配问题
- 子串相关问题
- 前缀 / 后缀相关问题;
- 回文串相关问题;
- 回文串相关问题
- 子序列相关问题。

## 2. 字符串的比较

### 2.1 字符串的比较操作

两个数字之间很容易比较大小,例如 `1 < 2`。而字符串之间的比较相对来说复杂一点。字符串之间的大小取决于它们按顺序排列字符的前后顺序。比如字符串 `str1 = "abc"` 和 `str2 = "acc"`,它们的第一个字母都是 `a`,而第二个字母,由于字母 `b` 比字母 `c` 要靠前,所以 `b < c`,于是我们可以说 `"abc" < "acd" `,也可以说 `str1 < str2`。
两个数字之间很容易比较大小,例如 `1 < 2`。而字符串之间的比较相对来说复杂一点。字符串之间的大小取决于它们按顺序排列字符的前后顺序。

比如字符串 `str1 = "abc"` 和 `str2 = "acc"`,它们的第一个字母都是 `a`,而第二个字母,由于字母 `b` 比字母 `c` 要靠前,所以 `b < c`,于是我们可以说 `"abc" < "acd" `,也可以说 `str1 < str2`。

字符串之间的比较是通过组成字符串的字符之间的「字符编码」来决定的。而字符编码指的是字符在对应字符集中的序号。

Expand Down

AltStyle によって変換されたページ (->オリジナル) /