题意:
给定一个字符串,逐个翻转字符串中的每个单词。
输入: " hello world! " 输出: "world! hello" 解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
解题思路:
将字符串中分割成单词,放入数组中,然后反向拼接
class Solution {
public:
string reverseWords(string s) {
int len = s.size();
vector<string> res;
for(int i = 0; i < len; i++) {
if(s[i] == ' ') { // 如果是空格,跳过
continue;
}
string s1 = "";
while(s[i] != ' ' && i < len) { // 拼接单词
s1 += s[i];
i++;
}
res.push_back(s1); // 放入数组
}
len = res.size();
if(len > 0) { // 长度不为0
string ans = res[len-1];
for(int i = len-2; i >= 0; i--) {
ans += " " + res[i]; // 反向拼接
}
return ans;
}
return "";
}
};

本文详细解析了LeetCode151题目——翻转字符串里的单词的解题思路。通过将字符串分割成单词并反向拼接的方法,实现了逐个翻转字符串中的每个单词的功能。文章提供了完整的代码实现,帮助读者理解如何处理字符串中的多余空格。
1218

被折叠的 条评论
为什么被折叠?



