题解:
模板代码:
1、如果有前后置空格,那么必须判断临时字符串非空才能输出,否则会输出空串
模板如下:
s += " "; //这里在最后一个字符位置加上空格,这样最后一个字符串就不会遗漏
string temp = ""; //临时字符串
vector<string> res; //存放字符串的数组
for (char ch : s) //遍历字符句子
{
if (ch == ' ') //遇到空格
{
if (!temp.empty()) //临时字符串非空
{
res.push_back(temp);
temp.clear(); //清空临时字符串
}
}
else
temp += ch;
}
作者:eh-xing-qing
链接:https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof/solution/yi-ge-mo-ban-shua-bian-suo-you-zi-fu-chu-x6vh/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如果不 s+=“ ”
也可以在while循环之外,添加语句
if(!temp.empty()) res.push_back(temp);
2、没有前后置的空格不需要判断空串
s += " ";
string temp = "";
vector<string> res;
for (char ch : s)
{
if (ch == ' ')
{
res.push_back(temp);
temp.clear();
}
else
temp += ch;
}
作者:eh-xing-qing
链接:https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof/solution/yi-ge-mo-ban-shua-bian-suo-you-zi-fu-chu-x6vh/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
题目练习:
力扣58. 最后一个单词的长度(直接套用模板1,返回数组尾元素长度(数组为空返回0))
力扣557. 反转字符串中的单词 III(套用模板2+反转字符串数组每个单词+重新连接)
力扣剑指 Offer 58 - I. 翻转单词顺序(模板1+反转整个字符数组+重新连接)
力扣1816. 截断句子(模板2+连接字符数组前k个字符串)