|
10 | 10 |
|
11 | 11 | <pre>
|
12 | 12 |
|
13 |
| -<strong> Input</strong>: |
| 13 | +<strong> Input</strong>: |
14 | 14 |
|
15 | 15 | ["SortedStack", "push", "push", "peek", "pop", "peek"]
|
16 | 16 |
|
17 | 17 | [[], [1], [2], [], [], []]
|
18 | 18 |
|
19 |
| -<strong> Output</strong>: |
| 19 | +<strong> Output</strong>: |
20 | 20 |
|
21 | 21 | [null,null,null,1,null,2]
|
22 | 22 |
|
|
26 | 26 |
|
27 | 27 | <pre>
|
28 | 28 |
|
29 |
| -<strong> Input</strong>: |
| 29 | +<strong> Input</strong>: |
30 | 30 |
|
31 | 31 | ["SortedStack", "pop", "pop", "push", "pop", "isEmpty"]
|
32 | 32 |
|
33 | 33 | [[], [], [], [1], [], []]
|
34 | 34 |
|
35 |
| -<strong> Output</strong>: |
| 35 | +<strong> Output</strong>: |
36 | 36 |
|
37 | 37 | [null,null,null,null,null,true]
|
38 | 38 |
|
@@ -120,6 +120,48 @@ class SortedStack {
|
120 | 120 | */
|
121 | 121 | ```
|
122 | 122 |
|
| 123 | +### **Go** |
| 124 | + |
| 125 | +```go |
| 126 | +type SortedStack struct { |
| 127 | + data []int |
| 128 | +} |
| 129 | + |
| 130 | +func Constructor() SortedStack { |
| 131 | + return SortedStack{make([]int, 0)} |
| 132 | +} |
| 133 | + |
| 134 | +func (s *SortedStack) Push(val int) { |
| 135 | + temp := make([]int, 0) |
| 136 | + for !s.IsEmpty() && s.Peek() < val { |
| 137 | + temp = append(temp, s.Peek()) |
| 138 | + s.Pop() |
| 139 | + } |
| 140 | + s.data = append(s.data, val) |
| 141 | + for len(temp) > 0 { |
| 142 | + s.data = append(s.data, temp[len(temp)-1]) |
| 143 | + temp = temp[:len(temp)-1] |
| 144 | + } |
| 145 | +} |
| 146 | + |
| 147 | +func (s *SortedStack) Pop() { |
| 148 | + if !s.IsEmpty() { |
| 149 | + s.data = s.data[:len(s.data)-1] |
| 150 | + } |
| 151 | +} |
| 152 | + |
| 153 | +func (s *SortedStack) Peek() int { |
| 154 | + if !s.IsEmpty() { |
| 155 | + return s.data[len(s.data)-1] |
| 156 | + } |
| 157 | + return -1 |
| 158 | +} |
| 159 | + |
| 160 | +func (s *SortedStack) IsEmpty() bool { |
| 161 | + return len(s.data) == 0 |
| 162 | +} |
| 163 | +``` |
| 164 | + |
123 | 165 | ### **...**
|
124 | 166 |
|
125 | 167 | ```
|
|
0 commit comments