Skip to content

Commit b103edc

Browse files
committed
[E:53/531, M:52/969, H:6/386] add No: 412 Fizz Buzz
1 parent 2b9d9c7 commit b103edc

File tree

5 files changed

+140
-1
lines changed

5 files changed

+140
-1
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
## [Fizz Buzz](https://leetcode-cn.com/problems/fizz-buzz/)
2+
3+
写一个程序,输出从 1 到 _n_ 数字的字符串表示。
4+
5+
1. 如果 __是3的倍数,输出“Fizz”;
6+
7+
2. 如果 __是5的倍数,输出“Buzz”;
8+
9+
3.如果 __同时是3和5的倍数,输出 “FizzBuzz”。
10+
11+
**示例:**
12+
13+
`n = 15,
14+
15+
返回:
16+
[
17+
"1",
18+
"2",
19+
"Fizz",
20+
"4",
21+
"Buzz",
22+
"Fizz",
23+
"7",
24+
"8",
25+
"Fizz",
26+
"Buzz",
27+
"11",
28+
"Fizz",
29+
"13",
30+
"14",
31+
"FizzBuzz"
32+
]
33+
`
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"reflect"
7+
"time"
8+
9+
"github.com/gladmo/leetcode/leet"
10+
"github.com/gladmo/leetcode/questions/serial/简单/412/golang/solution"
11+
)
12+
13+
func main() {
14+
15+
tests := []struct {
16+
name string
17+
input int
18+
want []string
19+
}{
20+
{
21+
name: "test-1",
22+
input: 1,
23+
want: []string{"1"},
24+
},
25+
{
26+
name: "test-15",
27+
input: 15,
28+
want: []string{
29+
"1",
30+
"2",
31+
"Fizz",
32+
"4",
33+
"Buzz",
34+
"Fizz",
35+
"7",
36+
"8",
37+
"Fizz",
38+
"Buzz",
39+
"11",
40+
"Fizz",
41+
"13",
42+
"14",
43+
"FizzBuzz",
44+
},
45+
},
46+
{
47+
name: "test-100",
48+
input: 100,
49+
want: []string{"1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz", "16", "17", "Fizz", "19", "Buzz", "Fizz", "22", "23", "Fizz", "Buzz", "26", "Fizz", "28", "29", "FizzBuzz", "31", "32", "Fizz", "34", "Buzz", "Fizz", "37", "38", "Fizz", "Buzz", "41", "Fizz", "43", "44", "FizzBuzz", "46", "47", "Fizz", "49", "Buzz", "Fizz", "52", "53", "Fizz", "Buzz", "56", "Fizz", "58", "59", "FizzBuzz", "61", "62", "Fizz", "64", "Buzz", "Fizz", "67", "68", "Fizz", "Buzz", "71", "Fizz", "73", "74", "FizzBuzz", "76", "77", "Fizz", "79", "Buzz", "Fizz", "82", "83", "Fizz", "Buzz", "86", "Fizz", "88", "89", "FizzBuzz", "91", "92", "Fizz", "94", "Buzz", "Fizz", "97", "98", "Fizz", "Buzz"},
50+
},
51+
}
52+
53+
testLog := leet.NewTestLog(len(tests))
54+
defer testLog.Render()
55+
56+
timeoutDuration := time.Second * 2
57+
58+
for idx, test := range tests {
59+
// 超时检测
60+
timeout := leet.Timeout(timeoutDuration, func(ctx context.Context, cancel context.CancelFunc) {
61+
solution.Export(test.input)
62+
cancel()
63+
})
64+
65+
if timeout {
66+
testLog.Fail(idx+1, test.name, "timeout")
67+
continue
68+
}
69+
70+
got := solution.Export(test.input)
71+
if !reflect.DeepEqual(test.want, got) {
72+
testLog.Fail(idx+1, test.name, fmt.Sprintf("want: %v, got %v.", test.want, got))
73+
continue
74+
}
75+
76+
testLog.Pass(idx+1, test.name)
77+
}
78+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package solution
2+
3+
func Export(n int) []string {
4+
return fizzBuzz(n)
5+
}
6+
7+
/****************************************************/
8+
/******** 以下为 Leetcode 示例部分(提交PR请还原) *******/
9+
/******** 使用 (./leetcode clear) 初始化所有问题 *******/
10+
/****************************************************/
11+
12+
func fizzBuzz(n int) []string {
13+
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package solution
2+
3+
func Export(n int) []string {
4+
return fizzBuzz(n)
5+
}
6+
7+
/****************************************************/
8+
/******** 以下为 Leetcode 示例部分(提交PR请还原) *******/
9+
/******** 使用 (./leetcode clear) 初始化所有问题 *******/
10+
/****************************************************/
11+
12+
func fizzBuzz(n int) []string {
13+
14+
}

questions/store.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)