151. Reverse Words in a String

47 篇文章 0 订阅

reverse讲解,size与capcity区别:点击打开链接

参考代码解释:点击打开链接

我的实现:

class Solution {
public:
    void reverseWords(string &s) {
        //利用reverse函数事半功倍
        //string类型是可以用s[]这样来访问元素的
        //storeIndex表示当前存储到的位置
        int storeIndex = 0;
        int i,j;
        reverse(s.begin(),s.end());
        int len = s.size();
        for( i = 0;i<len;i++){
            if( s[i] != ' '){
                if(storeIndex !=0){
                    //因为外侧的判断语句过滤掉了空格,所以再次扫描到下一个单词的开始需要在添加一个空格。
                    s[storeIndex++]=' ';
                }
                j = i;
                while(s[j] != ' ' && j < len){
                    s[storeIndex++] = s[j++];
                }   
                reverse(s.begin() + storeIndex - (j-i) , s.begin() + storeIndex);
                i=j;
            }
           
        }
        //最后resize一下。为了删除多余的元素。
        s.resize(storeIndex);
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值