代码拉取完成,页面将自动刷新
链接:https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3?tpId=13&tqId=11197&tPage=3&rp=2&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking
来源:牛客网
题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
class Solution {
public:
string ReverseSentence(string str) {
//这道题先把整体反转,然后再把每个单词反转,时间复杂度为O(n^2),空格个数都不能少
string res;
if (str.empty())
{
return res;
}
reverse(str.begin(), str.end());
int j = 0;
for (int i = 0; i < str.size(); i++)
{
if (str[i] != ' ')
{
string temp;
for (j = i; j < str.size() && str[j] != ' '; j++) //记录每个单词
{
temp += str[j];
}
reverse(temp.begin(), temp.end());
res = res + temp;
while(j < str.size() && str[j] == ' ') //继续复制空格数
{
res += ' ';
j++;
}
i = --j;
}
else
{
res += str[i];
}
}
return res;
}
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。