字符串面试题(二)— 间隔字符串逆序

对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。给定一个原字符串A和它的长度,请返回逆序后的字符串。

例子:
“dog loves pig”

输出:
“pig loves dog”


示例代码:

#include
#include
#include
using namespace std;
class Reverse {
public:
    string reverseSentence(string A, int n) 
    {
        reverseWord(A,0,n-1);
        int i=0,j=0;
        while(iwhile(i' ')
                i++;
            if(i>=n)
                return A;
            j=i;
            while(i' ')
                i++;
            if(i>=n)
            {
                reverseWord(A,j,n-1);
                return A;
            }
            reverseWord(A,j,i-1);
        }
        return A;

    }
    void reverseWord(string &A,int low,int high)
    //局部逆序函数
    {
        if(low>=high)
            return;
        char temp;
        while(lowint main()
{
    string arr("dog loves pig");
    Reverse a;
    a.reverseSentence(arr,13);
    cout<return 0;
}

你可能感兴趣的:(笔试题集合,面试算法题目集锦)