Skip to content

Commit 9cf1905

Browse files
committed
添加串回来
1 parent 1a029d0 commit 9cf1905

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed

ch.05.sequence.md

+29-6
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,35 @@ for item in nums:
6363

6464
##
6565

66-
TODO: 重写
66+
JavaScript中的字符串与array类似,自己维护了长度。但在早期的一些编程语言(如C语言)中,是没有做这种记录的,取而代之的是使用一个特定的标志来表示,这里是最后一个值为空。这种字符串也有另外一个名字,叫空结尾串(Null-terminated String)。
6767

68+
这种特殊标记就可以让我们界定一个序列的边界的另外一种方式。
69+
70+
我们可以来简单模拟一下这个行为:
71+
```javascript
72+
let content = ['h', 'e', 'l', 'l', 'o', null];
73+
74+
// 求长度:
75+
76+
function length(nts) {
77+
let length = 0;
78+
for (let item of nts) {
79+
if (item != null) {
80+
length ++;
81+
} else {
82+
break;
83+
}
84+
}
85+
return length;
86+
}
87+
88+
length(content) // 5
89+
```
90+
91+
而实际存放这个串的空间大小:
92+
```javascript
93+
content.length // 6
94+
```
6895

6996
## 可变长序列
7097

@@ -102,13 +129,9 @@ TODO: 重写
102129

103130
总结下来就是,序列是线性的(Linear)、有序的(Ordered,类比“排序过的(Sorted)”)和有穷的(Finite)。
104131

105-
## 迭代器
106-
107-
TODO: 重写
132+
## 生成器
108133

109-
## Iterator Categories
110134

111-
TODO: 重写
112135

113136
### 练习:最长公共子序列(Longest Common Subsequence)
114137

0 commit comments

Comments
 (0)