Skip to content

Commit 246a5ce

Browse files
committed
feat: 修改sidebar读取目录方式
1 parent 8172229 commit 246a5ce

24 files changed

+2226
-81
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// 给你长度相等的两个字符串 s1 和 s2 。一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。
2+
3+
// 如果对 其中一个字符串 执行 最多一次字符串交换 就可以使两个字符串相等,返回 true ;否则,返回 false 。
4+
5+
//  
6+
7+
// 示例 1:
8+
9+
// 输入:s1 = "bank", s2 = "kanb"
10+
// 输出:true
11+
// 解释:例如,交换 s2 中的第一个和最后一个字符可以得到 "bank"
12+
// 示例 2:
13+
14+
// 输入:s1 = "attack", s2 = "defend"
15+
// 输出:false
16+
// 解释:一次字符串交换无法使两个字符串相等
17+
// 示例 3:
18+
19+
// 输入:s1 = "kelb", s2 = "kelb"
20+
// 输出:true
21+
// 解释:两个字符串已经相等,所以不需要进行字符串交换
22+
// 示例 4:
23+
24+
// 输入:s1 = "abcd", s2 = "dcba"
25+
// 输出:false
26+
//  
27+
28+
// 提示:
29+
30+
// 1 <= s1.length, s2.length <= 100
31+
// s1.length == s2.length
32+
// s1 和 s2 仅由小写英文字母组成
33+
34+
// 来源:力扣(LeetCode)
35+
// 链接:https://leetcode.cn/problems/check-if-one-string-swap-can-make-strings-equal
36+
// 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
37+
38+
39+
40+
41+
/**
42+
* @param {string} s1
43+
* @param {string} s2
44+
* @return {boolean}
45+
*/
46+
var areAlmostEqual = function(s1, s2) {
47+
if(s1.length!==s2.length) return false;
48+
let different = [];
49+
for(let i =0;i<s1.length;i++){
50+
if(s1[i]!=s2[i]) different.push(i)
51+
}
52+
if(different.length>2||different.length==1) return false;
53+
const [left,right] = different;
54+
if(s1[left]==s2[right]&&s1[right]==s2[left]) return true;
55+
return false
56+
};
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// 实现一个 MyCalendar 类来存放你的日程安排。如果要添加的日程安排不会造成 重复预订 ,则可以存储这个新的日程安排。
2+
3+
// 当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生 重复预订 。
4+
5+
// 日程可以用一对整数 start 和 end 表示,这里的时间是半开区间,即 [start, end), 实数 x 的范围为,  start <= x < end 。
6+
7+
// 实现 MyCalendar 类:
8+
9+
// MyCalendar() 初始化日历对象。
10+
// boolean book(int start, int end) 如果可以将日程安排成功添加到日历中而不会导致重复预订,返回 true 。否则,返回 false 并且不要将该日程安排添加到日历中。
11+
//  
12+
13+
// 示例:
14+
15+
// 输入:
16+
// ["MyCalendar", "book", "book", "book"]
17+
// [[], [10, 20], [15, 25], [20, 30]]
18+
// 输出:
19+
// [null, true, false, true]
20+
21+
// 解释:
22+
// MyCalendar myCalendar = new MyCalendar();
23+
// myCalendar.book(10, 20); // return True
24+
// myCalendar.book(15, 25); // return False ,这个日程安排不能添加到日历中,因为时间 15 已经被另一个日程安排预订了。
25+
// myCalendar.book(20, 30); // return True ,这个日程安排可以添加到日历中,因为第一个日程安排预订的每个时间都小于 20 ,且不包含时间 20 。
26+
//  
27+
28+
// 提示:
29+
30+
// 0 <= start < end <= 109
31+
// 每个测试用例,调用 book 方法的次数最多不超过 1000 次。
32+
33+
// 来源:力扣(LeetCode)
34+
// 链接:https://leetcode.cn/problems/my-calendar-i
35+
// 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
36+
37+
38+
39+
var MyCalendar = function() {
40+
this.booked = [];
41+
};
42+
43+
MyCalendar.prototype.book = function(start, end) {
44+
for (const arr of this.booked) {
45+
let l = arr[0], r = arr[1];
46+
if (l < end && start < r) {
47+
return false;
48+
}
49+
}
50+
this.booked.push([start, end]);
51+
return true;
52+
};
53+
54+
/**
55+
* Your MyCalendar object will be instantiated and called as such:
56+
* var obj = new MyCalendar()
57+
* var param_1 = obj.book(start,end)
58+
*/

docs/.vuepress/config.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const nav = require('./nav.js')
2-
const sidebar = require('./sidebar.js')
2+
// const sidebar = require('./sidebar.js')
3+
const utils = require("./utils");
34

45
module.exports = {
56
title: 'Memory space',
@@ -16,7 +17,7 @@ module.exports = {
1617
smoothScroll: true,
1718
repo: 'L-SUI/note',
1819
nav,
19-
sidebar,
20+
sidebar: utils.inferSiderbars(),
2021
docsDir: 'docs',
2122
editLinks: true,
2223
editLinkText: '在 Github 上编辑此页',

docs/.vuepress/sidebar.js

Lines changed: 26 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
// note
2-
const note = [
2+
const sidebarMap = [
33
{
44
title: '性能优化',
5+
dirname: 'optimization',
56
collapsable: true,
67
children: [
78
'optimization/性能优化一',
@@ -16,6 +17,7 @@ const note = [
1617
},
1718
{
1819
title: '源码解析',
20+
dirname: 'sourceCode',
1921
collapsable: true,
2022
children: [
2123
'sourceCode/vue2',
@@ -29,6 +31,7 @@ const note = [
2931
},
3032
{
3133
title: '你不知道的css',
34+
dirname: 'cssNote',
3235
collapsable: true,
3336
children: [
3437
'cssNote/css',
@@ -39,6 +42,7 @@ const note = [
3942
},
4043
{
4144
title:'数据结构与算法',
45+
dirname: 'algorithm',
4246
collapsable: true,
4347
children: [
4448
'algorithm/algorithm',
@@ -57,6 +61,7 @@ const note = [
5761
},
5862
{
5963
title:'设计模式',
64+
dirname: 'design',
6065
collapsable: true,
6166
children: [
6267
'design/introduce',
@@ -67,6 +72,7 @@ const note = [
6772
},
6873
{
6974
title: 'TypeScript',
75+
dirname: 'typescript',
7076
collapsable: true,
7177
children: [
7278
'typescript/typescript',
@@ -76,6 +82,7 @@ const note = [
7682
},
7783
{
7884
title: 'Node',
85+
dirname: 'node',
7986
collapsable: true,
8087
children: [
8188
'node/node',
@@ -84,6 +91,7 @@ const note = [
8491
},
8592
{
8693
title: 'HTTP',
94+
dirname: 'http',
8795
collapsable: true,
8896
children: [
8997
'http/http_1',
@@ -94,6 +102,7 @@ const note = [
94102
},
95103
{
96104
title: 'Linux',
105+
dirname: 'linux',
97106
collapsable: true,
98107
children: [
99108
'linux/linux',
@@ -105,34 +114,39 @@ const note = [
105114
},
106115
{
107116
title: 'OS',
117+
dirname: 'os',
108118
collapsable: true,
109119
children: [
110120
'os/thread'
111121
]
112122
},
113123
{
114124
title: 'Python',
125+
dirname: 'python',
115126
collapsable: true,
116127
children: [
117128
'python/python爬虫'
118129
]
119130
},
120131
{
121132
title: 'Java',
133+
dirname: 'java',
122134
collapsable: true,
123135
children: [
124136
'java/java'
125137
]
126138
},
127139
{
128140
title: 'Nginx',
141+
dirname: 'nginx',
129142
collapsable: true,
130143
children: [
131144
'nginx/nginx'
132145
]
133146
},
134147
{
135148
title: '项目工程化',
149+
dirname: 'engineering',
136150
collapsable: true,
137151
children: [
138152
'engineering/ci_cd',
@@ -142,23 +156,26 @@ const note = [
142156
},
143157
{
144158
title: '数据库',
159+
dirname: 'database',
145160
collapsable: true,
146161
children: [
147162
'mysql/mysql'
148163
]
149164
},
150165
{
151166
title: '常用工具',
167+
dirname: 'tools',
152168
collapsable: true,
153169
children: [
154-
'mac/command_line',
155-
'mac/homebrew',
156-
'mac/nvm',
157-
'node/nrm'
170+
'tools/command_line',
171+
'tools/homebrew',
172+
'tools/nvm',
173+
'tools/nrm'
158174
]
159175
},
160176
{
161177
title: '自动化',
178+
dirname: 'automation',
162179
collapsable: true,
163180
children: [
164181
'automation/jenkins',
@@ -167,6 +184,7 @@ const note = [
167184
},
168185
{
169186
title: 'js相关',
187+
dirname: 'jsNote',
170188
collapsable: true,
171189
children: [
172190
'jsNote/函数柯里化curry',
@@ -192,92 +210,21 @@ const note = [
192210
},
193211
{
194212
title: 'QA相关',
213+
dirname: 'QA',
195214
collapsable: true,
196215
children: [
197216
'QA/JavaScript&QA',
198217
]
199218
},
200219
{
201220
title: '文章收藏',
221+
dirname: 'article',
202222
collapsable: true,
203223
children: [
204224
'article/article',
205225
]
206226
},
207227
]
208228

209-
// 算法
210-
// const algorithm = [
211-
// {
212-
// title: '数组',
213-
// collapsable: true,
214-
// children: [
215-
// 'array/count',
216-
// 'array/bisection_method',
217-
// 'array/find_min_number'
218-
// ]
219-
// },
220-
// {
221-
// title: '字符串',
222-
// collapsable: true,
223-
// children: [
224-
// 'string/slide_window'
225-
// ]
226-
// },
227-
// {
228-
// title: '栈、队列、',
229-
// collapsable: true,
230-
// children: [
231-
// 'sort/queue',
232-
// 'sort/linked_list',
233-
// 'linked_list/find_key'
234-
// ]
235-
// },
236-
// {
237-
// title: '趣味算法',
238-
// collapsable: true,
239-
// children: [
240-
// 'other/cards',
241-
// 'other/range_of_motion'
242-
// ]
243-
// },
244-
// ]
245229

246-
// 开源相关
247-
// const open_source = [
248-
// {
249-
// title: '开源贡献',
250-
// collapsable: true,
251-
// children: [
252-
// '',
253-
// ]
254-
// },
255-
// {
256-
// title: 'TinyDB',
257-
// collapsable: true,
258-
// children: [
259-
// 'github/indexeddb',
260-
// 'github/tinydb_docapi'
261-
// ]
262-
// },
263-
// {
264-
// title: 'Simple-dark',
265-
// collapsable: true,
266-
// children: [
267-
// 'vscode/Simple-dark'
268-
// ]
269-
// },
270-
// {
271-
// title: 'tscli',
272-
// collapsable: true,
273-
// children: [
274-
// 'cli/tscli'
275-
// ]
276-
// }
277-
// ]
278-
279-
module.exports = {
280-
'/note/': note,
281-
// '/algorithm/': algorithm,
282-
// '/open_source/': open_source
283-
}
230+
module.exports = sidebarMap;

0 commit comments

Comments
 (0)