菜鸡啊啊啊啊啊啊啊啊,字节跳动面试考的这个,没刷过原题,自己有没可能想出来,然后就,当场宣判***。。。string ReverseSentence(string str) { int len = str.length(); reverse(str.begin(),str.end());//reverse函数不会用,当然这个思路我也想不到,提醒我也不会 int k = 0; for(int i = 0; i if(str[i] == ' '){ reverse(str.begin()+k, str.begin()+i); //为什么是 +i 不是 +(i - 1) k = i + 1; } } reverse(str.begin() + k, str.begin()+len); //不出意外,这里忘记了。最后一个segment就这样被遗忘了,或者字符串就一个segment也就翻不过来了 return str; } 1.我根本忘记了reverse函数,所以面试官提醒我思路我也做不出;2.看了别人代码自己再写,还TM出了两个错误:a.for循环出来之后要把最后一个segment的字段翻一遍,这个,循环:臣妾做不到啊;b.end()是超尾的,那么reverse的第二个参数就要注意了,不用-1!!!补充知识:c.begin();——返回指向容器最开始位置数据的指针c.end();——返回指向容器最后一个数据单元+1的指针下次再做,我估计还会在同一个地方跌跟头,人类的本质是重蹈覆辙。(狂扇自己耳光ing。。。)