From 35fbe723091e5a9cb9e1cff4b3d2a21ef8ab95b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=9A=E5=9B=BD=E7=8E=AE?= Date: Fri, 18 Nov 2022 10:08:46 +0800 Subject: [PATCH 1/6] fix(solution/202): lack of golang solution The answer is implemented through a hash table. Both English and Chinese md versions have been added. I'm not sure `Solution.go` its role. But I find it nowhere to be quoted. After looking at the other folders, I decided to replace it and al. --- .../0200-0299/0202.Happy Number/README.md | 20 ++++++++++ .../0200-0299/0202.Happy Number/README_EN.md | 20 ++++++++++ .../0200-0299/0202.Happy Number/Solution.go | 40 +++++-------------- 3 files changed, 50 insertions(+), 30 deletions(-) diff --git a/solution/0200-0299/0202.Happy Number/README.md b/solution/0200-0299/0202.Happy Number/README.md index e33f92a67c7ff..bf448cb4971b8 100644 --- a/solution/0200-0299/0202.Happy Number/README.md +++ b/solution/0200-0299/0202.Happy Number/README.md @@ -132,6 +132,26 @@ public: }; ``` +### **Go** + +```go +func isHappy(n int) bool { + m := make(map[int]bool) + for n != 1 && !m[n] { + n, m[n] = getSum(n), true + } + return n == 1 +} + +func getSum(n int) (sum int) { + for n > 0 { + sum += (n%10) * (n%10) + n = n/10 + } + return +} +``` + ### **TypeScript** ```ts diff --git a/solution/0200-0299/0202.Happy Number/README_EN.md b/solution/0200-0299/0202.Happy Number/README_EN.md index bd6f925056fcd..ac1c90120f0b8 100644 --- a/solution/0200-0299/0202.Happy Number/README_EN.md +++ b/solution/0200-0299/0202.Happy Number/README_EN.md @@ -116,6 +116,26 @@ public: }; ``` +### **Go** + +```go +func isHappy(n int) bool { + m := make(map[int]bool) + for n != 1 && !m[n] { + n, m[n] = getSum(n), true + } + return n == 1 +} + +func getSum(n int) (sum int) { + for n > 0 { + sum += (n%10) * (n%10) + n = n/10 + } + return +} +``` + ### **TypeScript** ```ts diff --git a/solution/0200-0299/0202.Happy Number/Solution.go b/solution/0200-0299/0202.Happy Number/Solution.go index 2db7a7c7cf39a..8c6c330da5dbc 100644 --- a/solution/0200-0299/0202.Happy Number/Solution.go +++ b/solution/0200-0299/0202.Happy Number/Solution.go @@ -1,35 +1,15 @@ -var resultMap map[int]bool - -func init() { - resultMap = make(map[int]bool) -} - -func calculate(num int) int { - sum := 0 - for num > 0 { - k := num % 10 - sum += k * k - num = num / 10 +func isHappy(n int) bool { + m := make(map[int]bool) + for n != 1 && !m[n] { + n, m[n] = getSum(n), true } - return sum + return n == 1 } -func isHappy(n int) bool { - tmpMap := make(map[int]bool) - for ; ; n = calculate(n) { - f, ok := resultMap[n] - if f || n == 1 { - for k := range tmpMap { - resultMap[k] = true - } - return true - } - if (!f && ok) || tmpMap[n] { - for k := range tmpMap { - resultMap[k] = false - } - return false - } - tmpMap[n] = true +func getSum(n int) (sum int) { + for n > 0 { + sum += (n%10) * (n%10) + n = n/10 } + return } From 4fe21ce9e7801972d4a4c45ce399c3533b6a3ec1 Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Fri, 18 Nov 2022 10:14:32 +0800 Subject: [PATCH 2/6] Update README.md --- .../0200-0299/0202.Happy Number/README.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/solution/0200-0299/0202.Happy Number/README.md b/solution/0200-0299/0202.Happy Number/README.md index bf448cb4971b8..ad52fa0d7f76c 100644 --- a/solution/0200-0299/0202.Happy Number/README.md +++ b/solution/0200-0299/0202.Happy Number/README.md @@ -136,19 +136,18 @@ public: ```go func isHappy(n int) bool { - m := make(map[int]bool) - for n != 1 && !m[n] { - n, m[n] = getSum(n), true - } - return n == 1 + m := make(map[int]bool) + for n != 1 && !m[n] { + n, m[n] = getSum(n), true + } + return n == 1 } - func getSum(n int) (sum int) { - for n > 0 { - sum += (n%10) * (n%10) - n = n/10 + for n > 0 { + sum += (n % 10) * (n % 10) + n = n / 10 } - return + return } ``` From c3ae70c48adac2ee0ac4669e93b9468cfe08cff3 Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Fri, 18 Nov 2022 10:14:49 +0800 Subject: [PATCH 3/6] Update README_EN.md --- .../0200-0299/0202.Happy Number/README_EN.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/solution/0200-0299/0202.Happy Number/README_EN.md b/solution/0200-0299/0202.Happy Number/README_EN.md index ac1c90120f0b8..82c102890190d 100644 --- a/solution/0200-0299/0202.Happy Number/README_EN.md +++ b/solution/0200-0299/0202.Happy Number/README_EN.md @@ -120,19 +120,18 @@ public: ```go func isHappy(n int) bool { - m := make(map[int]bool) - for n != 1 && !m[n] { - n, m[n] = getSum(n), true - } - return n == 1 + m := make(map[int]bool) + for n != 1 && !m[n] { + n, m[n] = getSum(n), true + } + return n == 1 } - func getSum(n int) (sum int) { - for n > 0 { - sum += (n%10) * (n%10) - n = n/10 + for n > 0 { + sum += (n % 10) * (n % 10) + n = n / 10 } - return + return } ``` From 1b1d235645d5f130b311fdb3d6fb153b14516cd9 Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Fri, 18 Nov 2022 10:15:44 +0800 Subject: [PATCH 4/6] Update Solution.go --- solution/0200-0299/0202.Happy Number/Solution.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/0200-0299/0202.Happy Number/Solution.go b/solution/0200-0299/0202.Happy Number/Solution.go index 8c6c330da5dbc..04440025eed9f 100644 --- a/solution/0200-0299/0202.Happy Number/Solution.go +++ b/solution/0200-0299/0202.Happy Number/Solution.go @@ -8,8 +8,8 @@ func isHappy(n int) bool { func getSum(n int) (sum int) { for n > 0 { - sum += (n%10) * (n%10) - n = n/10 + sum += (n % 10) * (n % 10) + n = n / 10 } return } From a959f27b52cb534f254a3e09e6af798892d4ebe7 Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Fri, 18 Nov 2022 10:16:24 +0800 Subject: [PATCH 5/6] Update README.md --- solution/0200-0299/0202.Happy Number/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/solution/0200-0299/0202.Happy Number/README.md b/solution/0200-0299/0202.Happy Number/README.md index ad52fa0d7f76c..96b8c740a52a1 100644 --- a/solution/0200-0299/0202.Happy Number/README.md +++ b/solution/0200-0299/0202.Happy Number/README.md @@ -142,6 +142,7 @@ func isHappy(n int) bool { } return n == 1 } + func getSum(n int) (sum int) { for n > 0 { sum += (n % 10) * (n % 10) From 7f81494caa9405f64e433914dc93642a9ba8f463 Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Fri, 18 Nov 2022 10:16:38 +0800 Subject: [PATCH 6/6] Update README_EN.md --- solution/0200-0299/0202.Happy Number/README_EN.md | 1 + 1 file changed, 1 insertion(+) diff --git a/solution/0200-0299/0202.Happy Number/README_EN.md b/solution/0200-0299/0202.Happy Number/README_EN.md index 82c102890190d..ce2cc226ba39f 100644 --- a/solution/0200-0299/0202.Happy Number/README_EN.md +++ b/solution/0200-0299/0202.Happy Number/README_EN.md @@ -126,6 +126,7 @@ func isHappy(n int) bool { } return n == 1 } + func getSum(n int) (sum int) { for n > 0 { sum += (n % 10) * (n % 10)