8000 Add fizz-buzz · beyondyyh/Leetcode@50080b1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 50080b1

Browse files
committed
Add fizz-buzz
1 parent a3e88e6 commit 50080b1

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

algorithms/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
|0331|[验证二叉树的前序序列化](https://leetcode-cn.com/problems/verify-preorder-serialization-of-a-binary-tree/)|[go](./tree/331.isValidSerialization.go)|M|
5454
|0344|[反转字符串](https://leetcode-cn.com/problems/reverse-string/)|[go](./mystring/344.reverseString.go)|S|
5555
|0347|[前 K 个高频元素](https://leetcode-cn.com/problems/top-k-frequent-elements/)|[go](./myheap/347.topkFrequent.go)|M|
56+
|0412|[Fizz Buzz](https://leetcode-cn.com/problems/fizz-buzz/)|[go](./mystring/412.fizzBuzz.go)|S|
5657
|0442|[数组中重复的数据](https://leetcode-cn.com/problems/find-all-duplicates-in-an-array/)|[go](./myarray/442.findDuplicates.go)|M|
5758
|0468|[验证IP地址](https://leetcode-cn.com/problems/validate-ip-address/submissions/)|[go](./mystring/468.validIPAddress.go)|M|
5859
|0509|[斐波那契数](https://leetcode-cn.com/problems/fibonacci-number/)|[go](./myarray/509.fibnacci.go)|S|

algorithms/mystring/412.fizzBuzz.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package mystring
2+
3+
import "strconv"
4+
5+
func fizzBuzz(n int) []string {
6+
zzmap := map[string]string{
7+
"3": "Fizz",
8+
"5": "Buzz",
9+
}
10+
11+
var ans []string
12+
for i := 1; i <= n; i++ {
13+
var item string
14+
for ks, vs := range zzmap {
15+
k, _ := strconv.Atoi(ks)
16+
if i%k == 0 {
17+
item += vs
18+
}
19+
}
20+
// 都不能整除
21+
if item == "" {
22+
item = strconv.Itoa(i)
23+
}
24+
ans = append(ans, item)
25+
}
26+
27+
return ans
28+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package mystring
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/assert"
7+
8+
"Leetcode/algorithms/kit"
9+
)
10+
11+
// go test -v -run Test_fizzBuzz
12+
func Test_fizzBuzz(t *testing.T) {
13+
cases := []kit.CaseEntry{
14+
{
15+
Name: "x1",
16+
Input: 1,
17+
Expected: []string{"1"},
18+
},
19+
{
20+
Name: "x2",
21+
Input: 5,
22+
Expected: []string{"1", "2", "Fizz", "4", "Buzz"},
23+
},
24+
{
25+
Name: "x3",
26+
Input: 15,
27+
Expected: []string{"1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"},
28+
},
29+
}
30+
31+
for _, tt := range cases {
32+
t.Run(tt.Name, func(t *testing.T) {
33+
output := fizzBuzz(tt.Input.(int))
34+
expected := tt.Expected.([]string)
35+
assert.Equal(t, expected, output, "equal")
36+
})
37+
}
38+
}

0 commit comments

Comments
 (0)
0