题解 | #翻转单词序列#

翻转单词序列

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

思路:
  1. 为了省去边界条件的判断,在原字符串的尾部添加空格符,这样在遍历到尾部的时候,仍然存在一个空格,最后的结果去除掉这个空格即是所求答案。
  2. 首先判断这个字符串是不是一个空串或单字符的串,如果是,则翻转后还是他本身,故return str。
  3. 接着开始遍历非以上两种情况下的字符串,声明两个变量i和j,i用来定位下一个空格,j用来定位当前空格的下一个字符的位置;
  4. 找空格符,如果找到就将j与i之间的字符插入到res的前部,substr(i,num)的意思是从位置i,插入位置后续的num个元素,这里n的个数即等于j-i,执行完毕之后,将j指向i+1的位置。执行++i,继续遍历。
  5. 返回res.substr(0,sz),因为要去除掉末尾多出来的空格符。

class Solution {
public:
    string ReverseSentence(string str) {
        string strb=str+' ';
        string res="";
        int i=0;
        int j=0;
        int sz=strb.size()-1;

        if(str.size()==1||str==""){
            return str;
        }
        while(i<=sz){ 
            if(strb[i]==' '){
                   int num=i-j;
                   res=strb.substr(j,num)+' '+res;
                   j=i+1;
            }
            i++;
        }
        return res.substr(0,sz);
  }
};
全部评论

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务