美文网首页
剑指offer 某-翻转单词顺序列

剑指offer 某-翻转单词顺序列

作者: 千千鱼 | 来源:发表于2018-05-12 09:59 被阅读0次
    • 此题还算简单,但是总有更好的思路。第一反应是先翻转每个单词,再翻转每个句子。但是觉得翻转函数要自己写太麻烦了。(原谅我总是忘记标准库中的各种实现,algorithm库中的reverse函数应该直接可以用)

    • 第二个思路也简单,但是需要开辟额外的空间,就是把每个单词存在vector的一个string元素中,然后从后向前打印vector元素。代码如下:

    class Solution {
    public:
        string ReverseSentence(string str) {
            int n=str.length();
            if(n==0||n==1)
                return str;
            int temp=0;
            vector<string> vec;
            for(int i=0;i<n;i++){
                if(str[i]==' '){
                    vec.push_back(str.substr(temp,i-temp));
                    temp=i+1;
                }
                
            }
            vec.push_back(str.substr(temp,n-temp));
            str.clear();
            for(int i=vec.size()-1;i>=0;--i){
                str+=vec[i];
                if(i!=0)
                    str+=' ';
            }
            return str;
        }
    };
    
    • 需要注意的点: 输出的时候要记得添加空格!倒叙索引是从n-1开始的!

    相关文章

      网友评论

          本文标题:剑指offer 某-翻转单词顺序列

          本文链接:https://www.haomeiwen.com/subject/rwecdftx.html