首页  »   编程

翻转字符串中单纯词的顺序

网友分享于:2015-04-28  浏览:0次
翻转字符串中单词的顺序

问题:翻转字符串中的单词顺序,如“hello world”变成“world hello”。要求使用常量空间。


c++代码如下:


void reverse(string &s, int start, int end){
    int len=end+start;
    int center=len/2;
    for(int i=start;i<center;i++){
        swap(s[i],s[len-1-i]);
    }
}

void reverseWords(string &s) {
    if(s=="")
        return;
    reverse(s,0,s.length());//全部反转
    int start=0;
    int end=start;
    int len=s.length();
    while(end<len){
        while(start<len&&s[start]==' '){
            start++;
        }
        end=start;
        while(end<len&&s[end]!=' '){
            end++;
        }
        reverse(s,start,end);//翻转每个单词,使之字母序恢复原状
        start=end+1;
    }
    
}






相关解决方案

最新解决方案