返回
释放文本的潜能:LeetCode #151 颠倒字符串中的单词指南
见解分享
2023-11-02 04:04:25
颠倒字符串中的单词:LeetCode 第 151 题
理解问题
在编程世界中,字符串操作是不可避免的。LeetCode 第 151 题就提出了一个有趣的挑战:反转字符串中的单词。这意味着我们将句子中的单词顺序反转,同时保持单词本身的顺序不变。以 "hello world" 为例,反转后变为 "world hello",而不是 "dlrow olleh"。
解决方法
理解问题后,我们可以开始解决它。最直接的方法是将字符串拆分为单词列表,然后反转列表最后将单词重新连接为字符串。
代码实现
Python
def reverse_words(string):
# 按空格分隔单词
words = string.split()
# 反转单词列表
words.reverse()
# 重新连接单词
return " ".join(words)
Java
public String reverseWords(String string) {
String[] words = string.split(" ");
StringBuilder result = new StringBuilder();
for (int i = words.length - 1; i >= 0; i--) {
result.append(words[i]);
if (i != 0) {
result.append(" ");
}
}
return result.toString();
}
C++
string reverseWords(string string) {
vector<string> words;
stringstream ss(string);
string word;
// 按空格分隔单词
while (ss >> word) {
words.push_back(word);
}
// 反转单词列表
reverse(words.begin(), words.end());
// 重新连接单词
string result;
for (string word : words) {
result += word + " ";
}
result.pop_back();
return result;
}
示例
让我们通过一些示例来测试我们的解决方案:
输入:"hello world"
输出:"world hello"
输入:"a good example"
输出:"example good a"
输入:""
输出:""
提示
- 考虑字符串中可能存在多个连续空格的情况。
- 对于空字符串,返回空字符串。
- 使用反转算法反转单词列表。
延伸阅读
常见问题解答
-
反转字符串中的单词与反转字符串有什么区别?
反转字符串中的单词只改变单词的顺序,而反转字符串改变字符的顺序。 -
为什么我们要使用单词列表来解决问题?
使用单词列表允许我们轻松地反转单词顺序,而无需逐个字符地处理字符串。 -
如何在 Java 中使用反转算法?
Java 中可以使用Collections.reverse()
方法来反转列表。 -
如何处理字符串中有多个连续空格?
我们可以使用正则表达式\s+
来匹配多个连续空格,然后替换为单个空格。 -
反转字符串中的单词在实际应用程序中有哪些用途?
反转字符串中的单词在文本处理、数据清理和自然语言处理等领域有广泛的应用。