3_6句子逆序

对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。

给定一个原字符串A和他的长度,请返回逆序后的字符串。

测试样例:
输入:"dog loves pig",13
返回:"pig loves dog"

class Reverse {
public:
    //逆序某个区间的字符串
    void reverse_my(string &A, int start, int end)
    {
        while(start<end){
            char temp = A[start];
            A[start] = A[end];
            A[end] = temp;
            ++start;
            --end;
        }
    }
    
    string reverseSentence(string A, int n) {
        // write code here
        // start 是待逆序字符串起始位置, end是结束位置
        int start = 0, end = 1;
        while(end<n){
            if(' ' == A[end]){
                reverse_my(A, start, end-1);
                start = end + 1;
                ++end;
            }else if(n-1 == end){
                reverse_my(A, start, n-1);
            }
            ++end;
        }
        reverse_my(A, 0, n -1);
        return A;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容