Skip to content

Commit 2e8ca32

Browse files
authored
feat: update rust solution to lc problem: No.106 (doocs#2362)
1 parent 4d6c701 commit 2e8ca32

File tree

4 files changed

+20
-27
lines changed

4 files changed

+20
-27
lines changed

solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/README.md

+6-7
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,6 @@ impl Solution {
249249
d.insert(inorder[i], i);
250250
}
251251
fn dfs(
252-
inorder: &[i32],
253252
postorder: &[i32],
254253
d: &HashMap<i32, usize>,
255254
i: usize,
@@ -259,13 +258,13 @@ impl Solution {
259258
if n <= 0 {
260259
return None;
261260
}
262-
let v = postorder[j + n - 1];
263-
let k = *d.get(&v).unwrap();
264-
let l = dfs(inorder, postorder, d, i, j, k - i);
265-
let r = dfs(inorder, postorder, d, k + 1, j + k - i, n - 1 - (k - i));
266-
Some(Rc::new(RefCell::new(TreeNode { val: v, left: l, right: r })))
261+
let val = postorder[j + n - 1];
262+
let k = *d.get(&val).unwrap();
263+
let left = dfs(postorder, d, i, j, k - i);
264+
let right = dfs(postorder, d, k + 1, j + k - i, n - 1 - (k - i));
265+
Some(Rc::new(RefCell::new(TreeNode { val, left, right })))
267266
}
268-
dfs(&inorder, &postorder, &d, 0, 0, n)
267+
dfs(&postorder, &d, 0, 0, n)
269268
}
270269
}
271270
```

solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/README_EN.md

+6-7
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,6 @@ impl Solution {
245245
d.insert(inorder[i], i);
246246
}
247247
fn dfs(
248-
inorder: &[i32],
249248
postorder: &[i32],
250249
d: &HashMap<i32, usize>,
251250
i: usize,
@@ -255,13 +254,13 @@ impl Solution {
255254
if n <= 0 {
256255
return None;
257256
}
258-
let v = postorder[j + n - 1];
259-
let k = *d.get(&v).unwrap();
260-
let l = dfs(inorder, postorder, d, i, j, k - i);
261-
let r = dfs(inorder, postorder, d, k + 1, j + k - i, n - 1 - (k - i));
262-
Some(Rc::new(RefCell::new(TreeNode { val: v, left: l, right: r })))
257+
let val = postorder[j + n - 1];
258+
let k = *d.get(&val).unwrap();
259+
let left = dfs(postorder, d, i, j, k - i);
260+
let right = dfs(postorder, d, k + 1, j + k - i, n - 1 - (k - i));
261+
Some(Rc::new(RefCell::new(TreeNode { val, left, right })))
263262
}
264-
dfs(&inorder, &postorder, &d, 0, 0, n)
263+
dfs(&postorder, &d, 0, 0, n)
265264
}
266265
}
267266
```

solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/Solution.rs

+6-7
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ impl Solution {
2727
d.insert(inorder[i], i);
2828
}
2929
fn dfs(
30-
inorder: &[i32],
3130
postorder: &[i32],
3231
d: &HashMap<i32, usize>,
3332
i: usize,
@@ -37,12 +36,12 @@ impl Solution {
3736
if n <= 0 {
3837
return None;
3938
}
40-
let v = postorder[j + n - 1];
41-
let k = *d.get(&v).unwrap();
42-
let l = dfs(inorder, postorder, d, i, j, k - i);
43-
let r = dfs(inorder, postorder, d, k + 1, j + k - i, n - 1 - (k - i));
44-
Some(Rc::new(RefCell::new(TreeNode { val: v, left: l, right: r })))
39+
let val = postorder[j + n - 1];
40+
let k = *d.get(&val).unwrap();
41+
let left = dfs(postorder, d, i, j, k - i);
42+
let right = dfs(postorder, d, k + 1, j + k - i, n - 1 - (k - i));
43+
Some(Rc::new(RefCell::new(TreeNode { val, left, right })))
4544
}
46-
dfs(&inorder, &postorder, &d, 0, 0, n)
45+
dfs(&postorder, &d, 0, 0, n)
4746
}
4847
}

solution/util.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,7 @@ def generate_question_readme(result):
181181
def generate_category_summary(result, category=""):
182182
"""generate category summary files"""
183183
summary_cn = (
184-
"- " + category_dict.get(category, category) + "专项练习\n\n"
185-
if category
186-
else ""
184+
"- " + category_dict.get(category, category) + "专项练习\n\n" if category else ""
187185
)
188186
summary_en = "- " + category + " Practice\n\n" if category else ""
189187
category = category.lower() if category else ""
@@ -308,9 +306,7 @@ def refresh(result):
308306
)
309307

310308
# update question content
311-
old_content = re.search(
312-
"<!-- 这里写题目描述 -->(.*?)## 解法", cn_content, re.S
313-
).group(1)
309+
old_content = re.search("<!-- 这里写题目描述 -->(.*?)## 解法", cn_content, re.S).group(1)
314310
if question.get("content_cn"):
315311
cn_content = cn_content.replace(
316312
old_content, "\n\n" + question["content_cn"] + "\n\n"

0 commit comments

Comments
 (0)