菜鸡啊啊啊啊啊啊啊啊,字节跳动面试考的这个,没刷过原题,自己有没可能想出来,然后就,当场宣判***。。。

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] == ' &(234)#39;){
                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。。。)
全部评论
这个用C++实现多么简单,可惜了,我没脑子啊
点赞
送花
回复
分享
发布于 2020-04-04 17:05

相关推荐

投递腾讯云智研发等公司7个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务