Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit68cf194

Browse files
committed
Update all solutions' changes in 2025-05-11.
1 parentde34aec commit68cf194

4 files changed

+817
-8
lines changed
Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
#151. Reverse Words in a String - LeetCode Python/Java/C++/JS code
2+
3+
Visit original link:[151. Reverse Words in a String - LeetCode Python/Java/C++/JS code](https://leetcode.blog/en/leetcode/151-reverse-words-in-a-string) for a better experience!
4+
5+
LeetCode link:[151. Reverse Words in a String](https://leetcode.com/problems/reverse-words-in-a-string), difficulty:**Medium**.
6+
7+
##LeetCode description of "151. Reverse Words in a String"
8+
9+
Given an input string`s`, reverse the order of the**words**.
10+
11+
A**word** is defined as a sequence of non-space characters. The**words** in`s` will be separated by at least one space.
12+
13+
Return*a string of the words in reverse order concatenated by a single space*.
14+
15+
**Note** that`s` may contain leading or trailing spaces or multiple spaces between two words. The returned string should only have a single space separating the words. Do not include any extra spaces.
16+
17+
###[Example 1]
18+
19+
**Input**:`s = "the sky is blue"`
20+
21+
**Output**:`"blue is sky the"`
22+
23+
###[Example 2]
24+
25+
**Input**:`s = " hello world "`
26+
27+
**Output**:`"world hello"`
28+
29+
###[Example 3]
30+
31+
**Input**:`"a good example"`
32+
33+
**Output**:`"example good a"`
34+
35+
###[Constraints]
36+
37+
-`1 <= s.length <= 10^4`
38+
-`s` contains English letters (upper-case and lower-case), digits, and spaces`' '`.
39+
- There is**at least one** word in`s`.
40+
41+
**Follow-up**: If the string data type is mutable in your language, can you solve it**in-place** with`O(1)` extra space?
42+
43+
44+
45+
##Intuition
46+
47+
1. Split the string into an array of words (need to remove empty strings)
48+
2. Reverse the order of the words
49+
3. Join the words with a single space
50+
51+
##Step by Step Solutions
52+
53+
1. Split the string using`split(' ')`
54+
2. Remove empty strings
55+
3. Reverse the word array using`reverse`
56+
4. Merge into the final string using`join(' ')`
57+
58+
##Complexity
59+
60+
- Time complexity:`O(N)`.
61+
- Space complexity:`O(N)`.
62+
63+
##Python
64+
65+
```python
66+
classSolution:
67+
defreverseWords(self,s:str) ->str:
68+
words= [wordfor wordin s.split('')if word]
69+
return''.join(words[::-1])
70+
```
71+
72+
##Java
73+
74+
```java
75+
classSolution {
76+
publicStringreverseWords(Strings) {
77+
var wordList=newArrayList<String>();
78+
var words= s.split("");
79+
80+
for (var word: words) {
81+
if (!word.isEmpty()) {
82+
wordList.add(word);
83+
}
84+
}
85+
86+
int left=0;
87+
int right= wordList.size()-1;
88+
while (left< right) {
89+
Collections.swap(wordList, left, right);
90+
left++;
91+
right--;
92+
}
93+
94+
returnString.join("", wordList);
95+
}
96+
}
97+
```
98+
99+
##C++
100+
101+
```cpp
102+
classSolution {
103+
public:
104+
string reverseWords(string s) {
105+
istringstream iss(s);
106+
string word;
107+
vector<string> word_list;
108+
109+
// 1. Extract words from the string.
110+
// The istringstream >> operator automatically handles
111+
// multiple spaces between words and leading/trailing spaces.
112+
while (iss >> word) {
113+
word_list.push_back(word);
114+
}
115+
116+
reverse(word_list.begin(), word_list.end());
117+
118+
// 2. Join the words with a single space.
119+
string result = "";
120+
result = word_list[0];
121+
for (auto i = 1; i < word_list.size(); ++i) {
122+
result += " ";
123+
result += word_list[i];
124+
}
125+
126+
return result;
127+
}
128+
};
129+
130+
```
131+
132+
## JavaScript
133+
134+
```javascript
135+
var reverseWords = function(s) {
136+
const words = s.split(' ').filter((word) => word !== '');
137+
return words.reverse().join(' ');
138+
};
139+
```
140+
141+
##Go
142+
143+
```go
144+
funcreverseWords(sstring)string {
145+
words:= strings.Fields(s)// Fields splits on whitespace and ignores multiple spaces
146+
147+
// Reverse the words
148+
fori,j:=0,len(words) -1; i < j; {
149+
words[i], words[j] = words[j], words[i]
150+
i +=1
151+
j -=1
152+
}
153+
154+
return strings.Join(words,"")
155+
}
156+
```
157+
158+
##C#
159+
160+
```csharp
161+
publicclassSolution {
162+
publicstringReverseWords(strings) {
163+
// Split into words, remove empty entries, reverse
164+
varwords=s.Split(new[] {' '},StringSplitOptions.RemoveEmptyEntries).Reverse();
165+
returnstring.Join("",words);
166+
}
167+
}
168+
```
169+
170+
##Ruby
171+
172+
```ruby
173+
defreverse_words(s)
174+
s.split('').reject(&:empty?).reverse.join('')
175+
end
176+
```
177+
178+
##Other languages
179+
180+
```java
181+
// Welcome to create a PR to complete the code of this language, thanks!
182+
```
183+
184+
Dear LeetCoders! For a better LeetCode problem-solving experience, please visit website[LeetCode.blog](https://leetcode.blog): Dare to claim the best practices of LeetCode solutions! Will save you a lot of time!
185+
186+
Original link:[151. Reverse Words in a String - LeetCode Python/Java/C++/JS code](https://leetcode.blog/en/leetcode/151-reverse-words-in-a-string).
187+
188+
GitHub repository:[f*ck-leetcode](https://github.com/fuck-leetcode/fuck-leetcode).
189+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp