From b51df0401c56869c3fab5c30da0eebef1f8e9bd9 Mon Sep 17 00:00:00 2001 From: yanglbme Date: Wed, 21 Feb 2024 09:20:25 +0800 Subject: [PATCH] feat: update rust solution to lc problem: No.106 --- .../README.md | 13 ++++++------- .../README_EN.md | 13 ++++++------- .../Solution.rs | 13 ++++++------- solution/util.py | 8 ++------ 4 files changed, 20 insertions(+), 27 deletions(-) diff --git a/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/README.md b/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/README.md index 05d2b79e41389..5ebdcdbae8d25 100644 --- a/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/README.md +++ b/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/README.md @@ -249,7 +249,6 @@ impl Solution { d.insert(inorder[i], i); } fn dfs( - inorder: &[i32], postorder: &[i32], d: &HashMap, i: usize, @@ -259,13 +258,13 @@ impl Solution { if n <= 0 { return None; } - let v = postorder[j + n - 1]; - let k = *d.get(&v).unwrap(); - let l = dfs(inorder, postorder, d, i, j, k - i); - let r = dfs(inorder, postorder, d, k + 1, j + k - i, n - 1 - (k - i)); - Some(Rc::new(RefCell::new(TreeNode { val: v, left: l, right: r }))) + let val = postorder[j + n - 1]; + let k = *d.get(&val).unwrap(); + let left = dfs(postorder, d, i, j, k - i); + let right = dfs(postorder, d, k + 1, j + k - i, n - 1 - (k - i)); + Some(Rc::new(RefCell::new(TreeNode { val, left, right }))) } - dfs(&inorder, &postorder, &d, 0, 0, n) + dfs(&postorder, &d, 0, 0, n) } } ``` diff --git a/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/README_EN.md b/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/README_EN.md index 8f7fe769a354e..c59b4dee1fabe 100644 --- a/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/README_EN.md +++ b/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/README_EN.md @@ -245,7 +245,6 @@ impl Solution { d.insert(inorder[i], i); } fn dfs( - inorder: &[i32], postorder: &[i32], d: &HashMap, i: usize, @@ -255,13 +254,13 @@ impl Solution { if n <= 0 { return None; } - let v = postorder[j + n - 1]; - let k = *d.get(&v).unwrap(); - let l = dfs(inorder, postorder, d, i, j, k - i); - let r = dfs(inorder, postorder, d, k + 1, j + k - i, n - 1 - (k - i)); - Some(Rc::new(RefCell::new(TreeNode { val: v, left: l, right: r }))) + let val = postorder[j + n - 1]; + let k = *d.get(&val).unwrap(); + let left = dfs(postorder, d, i, j, k - i); + let right = dfs(postorder, d, k + 1, j + k - i, n - 1 - (k - i)); + Some(Rc::new(RefCell::new(TreeNode { val, left, right }))) } - dfs(&inorder, &postorder, &d, 0, 0, n) + dfs(&postorder, &d, 0, 0, n) } } ``` diff --git a/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/Solution.rs b/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/Solution.rs index fb35b215d6887..a7075a18dbd00 100644 --- a/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/Solution.rs +++ b/solution/0100-0199/0106.Construct Binary Tree from Inorder and Postorder Traversal/Solution.rs @@ -27,7 +27,6 @@ impl Solution { d.insert(inorder[i], i); } fn dfs( - inorder: &[i32], postorder: &[i32], d: &HashMap, i: usize, @@ -37,12 +36,12 @@ impl Solution { if n <= 0 { return None; } - let v = postorder[j + n - 1]; - let k = *d.get(&v).unwrap(); - let l = dfs(inorder, postorder, d, i, j, k - i); - let r = dfs(inorder, postorder, d, k + 1, j + k - i, n - 1 - (k - i)); - Some(Rc::new(RefCell::new(TreeNode { val: v, left: l, right: r }))) + let val = postorder[j + n - 1]; + let k = *d.get(&val).unwrap(); + let left = dfs(postorder, d, i, j, k - i); + let right = dfs(postorder, d, k + 1, j + k - i, n - 1 - (k - i)); + Some(Rc::new(RefCell::new(TreeNode { val, left, right }))) } - dfs(&inorder, &postorder, &d, 0, 0, n) + dfs(&postorder, &d, 0, 0, n) } } diff --git a/solution/util.py b/solution/util.py index 95335e82fa8bf..c8865e75f8dad 100644 --- a/solution/util.py +++ b/solution/util.py @@ -181,9 +181,7 @@ def generate_question_readme(result): def generate_category_summary(result, category=""): """generate category summary files""" summary_cn = ( - "- " + category_dict.get(category, category) + "专项练习\n\n" - if category - else "" + "- " + category_dict.get(category, category) + "专项练习\n\n" if category else "" ) summary_en = "- " + category + " Practice\n\n" if category else "" category = category.lower() if category else "" @@ -308,9 +306,7 @@ def refresh(result): ) # update question content - old_content = re.search( - "(.*?)## 解法", cn_content, re.S - ).group(1) + old_content = re.search("(.*?)## 解法", cn_content, re.S).group(1) if question.get("content_cn"): cn_content = cn_content.replace( old_content, "\n\n" + question["content_cn"] + "\n\n"