剑指offer:73-题解 | #翻转单词序列#

翻转单词序列

http://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3

题目描述


牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a nowcoder.”。


题解思路:使用栈或者数组

  1. 分割字符串,使用双指针,pre指向空格的下一个不为空格的字符,cur指向当前字符
  2. 初始化,pre = 0,指向字符串第一个字符;cur = 0 指向当前字符
  3. 如题所示,对字符串进行遍历,当字符为空时,cur指向该空字符的前一个不为空格的字符
  4. 如果使用栈容器,则str[cur]开始反向保存;如果使用数组容器,则str[pre]正向保存
  5. 遍历完第一个单词之后,保存空格(之前并未保存空格)
  6. 字符串的最后一个单词是没有空格的,所有最后需要遍历最后一个单词
  7. 字符拼接

图示取自大佬鸠摩罗什,在此引用。图示中采用数组形式

alt


代码,该代码采用栈容器

class Solution {
public:
    string ReverseSentence(string str) {
        if(str.empty()) return "";
        stack<char> s;
        int pre = 0;//指向空格的下一个字符
        int cur = 0;//指向当前字符
        //把nowcoder. a am I中最后一个空格之前的字符全部压入栈中
        for(int i =0;i<str.size();i++){
            if(str[i] == ' '){
                cur = i-1;
                while(cur >= pre){
                    s.push(str[cur]);
                    cur--;
                }
                s.push(str[i]);//最后把空格插入
                pre = i+1;//pre指向空格的下一个字符
            }
        }
        //把空格之前的字符压入栈之后,还要将剩余的字符全部压入栈中
        for(int i = str.size()-1;i >= pre;i--){
            s.push(str[i]);
        }
        string result = "";
        while(!s.empty()){
            result+=s.top();
            s.pop();
        }
        return result;
    }
};
``

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 12:02
ssob上原来真有BOSS啊
硫蛋蛋:这种也是打工的,只不是是给写字楼房东打工
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务