Skip to content

Commit 8569002

Browse files
committed
feat: update solutions to lcof problems: No.57,58
1 parent 5ebffe5 commit 8569002

File tree

6 files changed

+103
-0
lines changed

6 files changed

+103
-0
lines changed

lcof/面试题57 - II. 和为s的连续正数序列/README.md

+28
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,34 @@ public:
162162
};
163163
```
164164
165+
### **Go**
166+
167+
```go
168+
func findContinuousSequence(target int) [][]int {
169+
ans := make([][]int, 0)
170+
window := 0
171+
left, right := 1, 1
172+
for n := target / 2; left <= n; {
173+
if window < target {
174+
window += right
175+
right++
176+
} else if window > target {
177+
window -= left
178+
left++
179+
} else {
180+
tmp := make([]int, 0, right-left)
181+
for i := left; i < right; i++ {
182+
tmp = append(tmp, i)
183+
}
184+
ans = append(ans, tmp)
185+
window -= left
186+
left++
187+
}
188+
}
189+
return ans
190+
}
191+
```
192+
165193
### **...**
166194

167195
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
func findContinuousSequence(target int) [][]int {
2+
ans := make([][]int, 0)
3+
window := 0
4+
left, right := 1, 1
5+
for n := target / 2; left <= n; {
6+
if window < target {
7+
window += right
8+
right++
9+
} else if window > target {
10+
window -= left
11+
left++
12+
} else {
13+
tmp := make([]int, 0, right-left)
14+
for i := left; i < right; i++ {
15+
tmp = append(tmp, i)
16+
}
17+
ans = append(ans, tmp)
18+
window -= left
19+
left++
20+
}
21+
}
22+
return ans
23+
}

lcof/面试题58 - I. 翻转单词顺序/README.md

+23
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,29 @@ var reverseWords = function (s) {
9292
};
9393
```
9494

95+
### **C++**
96+
97+
```cpp
98+
func reverseWords(s string) string {
99+
s = strings.Trim(s, " ")
100+
n := len(s) - 1
101+
builder := new(strings.Builder)
102+
for i, j := n, n; i >= 0; j = i {
103+
for i >= 0 && s[i] != ' ' {
104+
i--
105+
}
106+
if builder.Len() != 0 {
107+
builder.WriteRune(' ')
108+
}
109+
builder.WriteString(s[i+1 : j+1])
110+
for i >= 0 && s[i] == ' ' {
111+
i--
112+
}
113+
}
114+
return builder.String()
115+
}
116+
```
117+
95118
### **...**
96119
97120
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
func reverseWords(s string) string {
2+
s = strings.Trim(s, " ")
3+
n := len(s) - 1
4+
builder := new(strings.Builder)
5+
for i, j := n, n; i >= 0; j = i {
6+
for i >= 0 && s[i] != ' ' {
7+
i--
8+
}
9+
if builder.Len() != 0 {
10+
builder.WriteRune(' ')
11+
}
12+
builder.WriteString(s[i+1 : j+1])
13+
for i >= 0 && s[i] == ' ' {
14+
i--
15+
}
16+
}
17+
return builder.String()
18+
}

lcof/面试题58 - II. 左旋转字符串/README.md

+8
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@ var reverseLeftWords = function (s, n) {
5757
};
5858
```
5959

60+
### **Go**
61+
62+
```go
63+
func reverseLeftWords(s string, n int) string {
64+
return s[n:] + s[:n]
65+
}
66+
```
67+
6068
### **...**
6169

6270
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
func reverseLeftWords(s string, n int) string {
2+
return s[n:] + s[:n]
3+
}

0 commit comments

Comments
 (0)