Skip to content

Commit cd0c144

Browse files
committed
feat: add solutions to lc problem: No.0557.Reverse Words in a String III
1 parent 92b8ff2 commit cd0c144

File tree

7 files changed

+138
-11
lines changed

7 files changed

+138
-11
lines changed

solution/0200-0299/0200.Number of Islands/README_EN.md

-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
<p>Given an <code>m x n</code> 2D binary grid <code>grid</code> which represents a map of <code>&#39;1&#39;</code>s (land) and <code>&#39;0&#39;</code>s (water), return <em>the number of islands</em>.</p>
88

9-
<p>An <strong>island</strong> is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.</p>
10-
119
<p>&nbsp;</p>
1210
<p><strong>Example 1:</strong></p>
1311

solution/0500-0599/0557.Reverse Words in a String III/README.md

+51-1
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,65 @@
3636
<!-- 这里可写当前语言的特殊实现逻辑 -->
3737

3838
```python
39-
39+
class Solution:
40+
def reverseWords(self, s: str) -> str:
41+
return ' '.join([t[::-1] for t in s.split(' ')])
4042
```
4143

4244
### **Java**
4345

4446
<!-- 这里可写当前语言的特殊实现逻辑 -->
4547

4648
```java
49+
class Solution {
50+
public String reverseWords(String s) {
51+
StringBuilder res = new StringBuilder();
52+
for (String t : s.split(" ")) {
53+
for (int i = t.length() - 1; i >= 0; --i) {
54+
res.append(t.charAt(i));
55+
}
56+
res.append(" ");
57+
}
58+
return res.substring(0, res.length() - 1);
59+
}
60+
}
61+
```
62+
63+
### **C++**
64+
65+
```cpp
66+
class Solution {
67+
public:
68+
string reverseWords(string s) {
69+
for (int i = 0, n = s.size(); i < n; ++i)
70+
{
71+
int j = i;
72+
while (++j < n && s[j] != ' ');
73+
reverse(s.begin() + i, s.begin() + j);
74+
i = j;
75+
}
76+
return s;
77+
}
78+
};
79+
```
4780
81+
### **Go**
82+
83+
```go
84+
func reverseWords(s string) string {
85+
t := []byte(s)
86+
for i := 0; i < len(t); i++ {
87+
j := i
88+
for j < len(t) && t[j] != ' ' {
89+
j++
90+
}
91+
for st, ed := i, j-1; st < ed; st, ed = st+1, ed-1 {
92+
t[st], t[ed] = t[ed], t[st]
93+
}
94+
i = j
95+
}
96+
return string(t)
97+
}
4898
```
4999

50100
### **...**

solution/0500-0599/0557.Reverse Words in a String III/README_EN.md

+51-1
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,63 @@
3333
### **Python3**
3434

3535
```python
36-
36+
class Solution:
37+
def reverseWords(self, s: str) -> str:
38+
return ' '.join([t[::-1] for t in s.split(' ')])
3739
```
3840

3941
### **Java**
4042

4143
```java
44+
class Solution {
45+
public String reverseWords(String s) {
46+
StringBuilder res = new StringBuilder();
47+
for (String t : s.split(" ")) {
48+
for (int i = t.length() - 1; i >= 0; --i) {
49+
res.append(t.charAt(i));
50+
}
51+
res.append(" ");
52+
}
53+
return res.substring(0, res.length() - 1);
54+
}
55+
}
56+
```
57+
58+
### **C++**
59+
60+
```cpp
61+
class Solution {
62+
public:
63+
string reverseWords(string s) {
64+
for (int i = 0, n = s.size(); i < n; ++i)
65+
{
66+
int j = i;
67+
while (++j < n && s[j] != ' ');
68+
reverse(s.begin() + i, s.begin() + j);
69+
i = j;
70+
}
71+
return s;
72+
}
73+
};
74+
```
4275
76+
### **Go**
77+
78+
```go
79+
func reverseWords(s string) string {
80+
t := []byte(s)
81+
for i := 0; i < len(t); i++ {
82+
j := i
83+
for j < len(t) && t[j] != ' ' {
84+
j++
85+
}
86+
for st, ed := i, j-1; st < ed; st, ed = st+1, ed-1 {
87+
t[st], t[ed] = t[ed], t[st]
88+
}
89+
i = j
90+
}
91+
return string(t)
92+
}
4393
```
4494

4595
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public:
3+
string reverseWords(string s) {
4+
for (int i = 0, n = s.size(); i < n; ++i)
5+
{
6+
int j = i;
7+
while (++j < n && s[j] != ' ');
8+
reverse(s.begin() + i, s.begin() + j);
9+
i = j;
10+
}
11+
return s;
12+
}
13+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
func reverseWords(s string) string {
2+
t := []byte(s)
3+
for i := 0; i < len(t); i++ {
4+
j := i
5+
for j < len(t) && t[j] != ' ' {
6+
j++
7+
}
8+
for st, ed := i, j-1; st < ed; st, ed = st+1, ed-1 {
9+
t[st], t[ed] = t[ed], t[st]
10+
}
11+
i = j
12+
}
13+
return string(t)
14+
}
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
class Solution {
22
public String reverseWords(String s) {
3-
String flag = " ";
4-
StringBuilder result = new StringBuilder();
5-
for (String temp : s.split(flag)) {
6-
for (int i = temp.length() - 1; i >= 0; i--) {
7-
result.append(temp.charAt(i));
3+
StringBuilder res = new StringBuilder();
4+
for (String t : s.split(" ")) {
5+
for (int i = t.length() - 1; i >= 0; --i) {
6+
res.append(t.charAt(i));
87
}
9-
result.append(flag);
8+
res.append(" ");
109
}
11-
return result.toString().substring(0, s.length());
10+
return res.substring(0, res.length() - 1);
1211
}
1312
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class Solution:
2+
def reverseWords(self, s: str) -> str:
3+
return ' '.join([t[::-1] for t in s.split(' ')])

0 commit comments

Comments
 (0)