From 1fcf630dad16d1a52db5692bcaf96f8530376125 Mon Sep 17 00:00:00 2001 From: yangfeng Date: Wed, 11 Dec 2019 19:49:37 +0800 Subject: [PATCH 1/2] 301-Week 07 --- Week 02/id_301/LeetCode_242_301.go | 40 +++++++++++++++++++ Week 05/id_301/LeetCode_1143_301.go | 61 +++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 Week 02/id_301/LeetCode_242_301.go create mode 100644 Week 05/id_301/LeetCode_1143_301.go diff --git a/Week 02/id_301/LeetCode_242_301.go b/Week 02/id_301/LeetCode_242_301.go new file mode 100644 index 000000000..fd8774e79 --- /dev/null +++ b/Week 02/id_301/LeetCode_242_301.go @@ -0,0 +1,40 @@ +package main + +import "fmt" + +func isAnagram(s string, t string) bool { + lenS := len(s) + lenT := len(t) + if lenS != lenT { + return false + } + if s == "" && t == "" { + return true + } + sliceS := []byte(s) + sliceT := []byte(t) + var charMap map[byte]int + charMap = make(map[byte]int) + for i := 0; i < lenS; i++ { + charMap[sliceS[i]]++ + charMap[sliceT[i]]-- + } + + for _, v := range charMap { + if v != 0 { + return false + } + } + return true +} + +func main() { + root := new(TreeNode) + root.Val = 1 + root.Left = new(TreeNode) + root.Left.Val = 2 + root.Right = new(TreeNode) + root.Right.Val = 3 + + fmt.Println(inorderTraversal(root)) +} diff --git a/Week 05/id_301/LeetCode_1143_301.go b/Week 05/id_301/LeetCode_1143_301.go new file mode 100644 index 000000000..49da90d83 --- /dev/null +++ b/Week 05/id_301/LeetCode_1143_301.go @@ -0,0 +1,61 @@ +package main + +import "fmt" + +func longestCommonSubsequence(text1 string, text2 string) int { + len1 := len(text1) + len2 := len(text2) + if len1 == 0 || len2 == 0 { + return 0 + } + dp := make([][]int, len1+1) + for i := 0; i <= len1; i++ { + dp[i] = make([]int,len2+1) + } + for i := 1; i <= len1; i++ { + for j := 1; j <= len2; j++ { + if text1[i-1] == text2[j-1] { + dp[i][j] = dp[i-1][j-1] + 1 + } else { + dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + } + } + } + fmt.Println(dp) + return dp[len1][len2] +} + +func max(x, y int) int { + if x > y { + return x + } + return y +} + +func letterCombinations(digits string) []string { + length := len(digits) + var res []string + alphaMap := map[string][]string{ + "2":[]string{"a","b","c"}, + "3":[]string{"d","e","f"}, + "4":[]string{"g","h","i"}, + "5":[]string{"j","k","l"}, + "6":[]string{"m","n","o"}, + "7":[]string{"p","q","r","s"}, + "8":[]string{"t","u","v"}, + "9":[]string{"w","x","y","z"}, + } + s := "" + for i:=0;i Date: Fri, 13 Dec 2019 13:37:00 +0800 Subject: [PATCH 2/2] 301-Week 07 --- Week 05/id_301/LeetCOde_17_301.go | 26 ++++++++++++++++++++++++++ Week 05/id_301/LeetCode_1143_301.go | 28 ++-------------------------- 2 files changed, 28 insertions(+), 26 deletions(-) create mode 100644 Week 05/id_301/LeetCOde_17_301.go diff --git a/Week 05/id_301/LeetCOde_17_301.go b/Week 05/id_301/LeetCOde_17_301.go new file mode 100644 index 000000000..db6f9c9b9 --- /dev/null +++ b/Week 05/id_301/LeetCOde_17_301.go @@ -0,0 +1,26 @@ +package main + +import "fmt" + +func letterCombinations(digits string, path string, res *[]string) { + if len(digits) == len(path) { + *res = append(*res, path) + return + } + numMap := map[string][]string{ + "2": {"a", "b", "c"}, + "3": {"d", "e", "f"}, + "4": {"g", "h", "i"}, + "5": {"j", "k", "l"}, + "6": {"m", "n", "o"}, + "7": {"p", "q", "r", "s"}, + "8": {"t", "u", "v"}, + "9": {"w", "x", "y", "z"}, + } + for _, v := range numMap[string(digits[len(path)])] { + path = path + string(v) + letterCombinations(digits, path, res) + fmt.Println(1) + path = path[:len(path)-1] + } +} diff --git a/Week 05/id_301/LeetCode_1143_301.go b/Week 05/id_301/LeetCode_1143_301.go index 49da90d83..d62296fa1 100644 --- a/Week 05/id_301/LeetCode_1143_301.go +++ b/Week 05/id_301/LeetCode_1143_301.go @@ -10,7 +10,7 @@ func longestCommonSubsequence(text1 string, text2 string) int { } dp := make([][]int, len1+1) for i := 0; i <= len1; i++ { - dp[i] = make([]int,len2+1) + dp[i] = make([]int, len2+1) } for i := 1; i <= len1; i++ { for j := 1; j <= len2; j++ { @@ -32,30 +32,6 @@ func max(x, y int) int { return y } -func letterCombinations(digits string) []string { - length := len(digits) - var res []string - alphaMap := map[string][]string{ - "2":[]string{"a","b","c"}, - "3":[]string{"d","e","f"}, - "4":[]string{"g","h","i"}, - "5":[]string{"j","k","l"}, - "6":[]string{"m","n","o"}, - "7":[]string{"p","q","r","s"}, - "8":[]string{"t","u","v"}, - "9":[]string{"w","x","y","z"}, - } - s := "" - for i:=0;i